dev optozorax


Гео и язык канала: не указан, не указан
Категория: не указана


Дневник программирования
В основном прогаю на Rust
98% контента исключительно оригинально.
Владелец: @optozorax
Сайт: optozorax.github.io

Связанные каналы  |  Похожие каналы

Гео и язык канала
не указан, не указан
Категория
не указана
Статистика
Фильтр публикаций


Поздравляю всех мужчин с международным мужским днём 19 ноября.

(Пишу этот пост для распространения информации о таком празднике, чтобы сократить поддержку дня защитника отечества 23 февраля.)


Я занял там второе место и получаю бесплатный билет на конферецию 😎. Скорее всего смогу прийти.

Решил все задачи, но впритык: последнюю задачу сдал за 2 минуты до конца. Меня обогнал более скилловый чувак, который решал в 2 раза быстрее.

Если кому интересно, мои решения лежат здесь.


Вы знаете английский язык на том уровне чтобы смотреть английские видео в ютубе и более-менее их понимать?
Опрос
  •   Да
  •   Нет
305 голосов


Наконец 3Blue1Brown и Leios Labs подвели итоги Summer of Math Exposition (SoME1) в этом видео. Для тех кто не знает, SoME1 — это конкурс по созданию видео или статей, объясняющие популярным языком какую-то интересную математическую тему. Цель: больше популяризации математики богу популяризации математики.

Результаты конкурса просто невероятные — весь ютуб заполонили видео про самые разные математические темы. Причём главный прикол в том, что большая часть видео сделана людьми, которые раньше никогда не делали чего-то подобного (или вообще не делали видео), то есть теперь у нас есть очень много контента не только от активных ютуберов-математиков. Что делает этот контент максимально разнообразным.

Мне нравится в этом конкурсе то, что любой человек может взять и вложить силы в создание видео, а затем гарантированно получить какое-то количество просмотров и зрителей, активно заинтересованых в математике. Это работает просто за счёт того что у всего этого есть общая платформа в виде этого конкурса. Вряд ли бы все эти люди стали бы делать видео просто так, кидая его в пустоту. А тут сразу и конкретный формат и автоматическое продвижение и коммьюнити.

Все видео на английском языке или с английским субтитрами.

Первым делом советую смотреть видео с подведением итогов чтобы узнать о наиболее годных видео и добавить их себе в плейлист «Смотреть позже».

Затем можно приняться за плейлист со всеми 835 участниками. А для тех кто больше любит читать, в блоге 3b1b находятся ссылки на статьи участников.

Я как раз начну потихоньку смотреть все эти видео за едой, не надо будет париться насчёт поиска аниме или сериала, удобно.

(Планирую во время просмотра собирать свои субъективные оценки каждого видео, может быть соберу это потом в одну статью, а может и нет, ничего не гарантирую)


Только что я принял участие в контесте RustCon.

Это соревнование на платформе codeforces.com от организаторов конференции по Rust, которая пройдёт 3 декабря в Москве.

Участие в соревновании можно принять в любое удобное время. Длится оно 3 часа и на это время даётся 9 задач. Отправлять решения можно только на одном языке: Rust. Задачки прикольные. Свои результаты сообщу после окончания соревнования или если они будут в официальной таблице (во имя соревновательного духа!).

Для тех кто захочет в нём участвовать у меня для вас есть пара советов, если вы хотите максимизировать свои шансы:

1. Разберитесь с вводом-выводом в Rust. Может пригодиться статья How to Compete in Rust.
2. Примите виртуальное участие в любом другом контесте (лучше Div.3 для начинающих) или решите пару открытых задач.
3. Почитайте правила Codeforces относительно того что можно делать во время соревнования, а что нет. В частности советую разобраться с темой копированя кода (спойлер: можно, но с нюансами). Так что заготовку для ввода-вывода заранее сделать не страшно.

А ещё год назад я писал про свои приключения в решении олимпиадных задачек на Codeforces на Rust, их можно почитать здесь: /268 - /284. Там есть описание моей программы для локального тестирования и ссылка на репозиторий с моими решениями и заготовками кода. Может быть полезно для подготовки.


Недавно 3blue1brown выпустил видео про фракталы Ньютона (на английском). Советую посмотреть.

Я много использовал метод Ньютона, как в своих проектах с компьютерной графикой, так и в университете в качестве практических работ. И на эту тему мне есть что сказать.

Во-первых меня немного напрягает что фрактал Ньютона строят на основе комплексных чисел. А что нельзя как-нибудь без них? Будут ли фракталы если делать такие же визуализации для двумерных функций на действительных числах? Оказывается будут, и я писал об этом тред в твиттере с картинками. Сейчас перенёс это в статью в своём блоге: Фракталы в методе Ньютона. Там немного, 2 минуты чтения.

Во-вторых я писал статью о том как можно сделать многомерный метод Ньютона. Мне бы эта статья очень пригодилась в школе, когда я пытался запрограммировать его, но его описание в интернете было слишком сложно.


До первого алгособеса я прорешал не так много задач, его вытянул на своих силах и за счёт того что задачи были простые.

Ко второму алгособесу у меня было около 100 решённых задач, и это спасло мне жизнь. Если бы не вся эта практика, то не смог бы придумать и закодить решение к одной сложной задаче.

Вот что нового я узнал в процессе:
• Fast & Slow pointers — для нахождения цикла в односвязном списке (задача).
• Применение решения выше в задаче где нет ни слова об односвязных списках 🤯 (задача). Оказывается односвязные списки могут применяться не только разработчиками стандартной библиотеки.
• Алгоритм Манакера — для нахождения всех палиндромов в строке за O(n), похож на Z-функцию. Очень прикольно, мне понравилось. Я смог его сам реализовать просто по текстовому описанию за счёт того что уже знал как работает Z-функция.
• Monotonic queue — позволяет находить ближайший элемент больше текущего за O(n). Прикольная структура данных.
• Trie — как я раньше об этом не знал, это офигенная структура данных, и так просто кодится! Обожаю теперь.
• Sliding window — с помощью этого паттерна можно решать многие задачи очень быстро. И это очень хитро, я раньше даже не подозревал что так вообще можно было.
• Multiset — структура данных, имитирующая отсортированный массив, и позволяющая за O(log(N)) вставлять/удалять элемент и находить минимум/максимум. Multimap примерно то же.

Ну а так же я очень сильно закрепил следующие темы:
• Динамическое программирование
• Map, Set, Priority Queue
• Backtracking
• Деревья
• Two pointers
• Prefix/suffix sum/min/max/etc

Хоть я раньше их и знал, но теперь мне кажется они прям идеально отточены.

В общем узнал очень очень много нового, несмотря на некоторый олимпиадный бэкграунд.

Раньше я относился к LeetCode как к сайту со слишком простыми задачами, а теперь после всего этого я изменил своё мнение. Теперь всем буду рекомендовать сначала набраться базы на LeetCode, а затем идти на CodeForces за более серьёзными задачами.

Ну и для подготовке к собесам LeetCode тоже отлично подходит.


Хочу поделиться с вами своим небольшим достижением:

Я прорешал 159 LeetCode задач для подготовки к алгособесам!!!

Фух, только что закончил.

Так как меня интересуют конкретно задачи для интервью, я выбрал список Leetcode Patterns. Там есть 35 easy, 105 medium и 30 hard задач. Я прорешал оттуда все задачи без учёта тех что требуют подписку. Сделал это за 2 недели.

Мои решения лежат здесь.

Спасибо @vladtenlive за наводку, мотивацию и видосики по некоторым задачам.


Скачивание веб-страниц в один HTML файл. #решения

Нашёл такое расширение для браузера. Стили, скрипты, шрифты, картинки, видео тупо инлайнятся в html через data:image + base64 или напрямую через , . Теперь можно перестать делать скриншоты всей страницы или скачивать её в pdf. Так же это расширение позволяет скачивать только выделенную часть страницы.

Расширение: https://github.com/gildas-lormeau/SingleFile (там нормальное описание и ссылка на версию для каждого браузера).

Оригинальные настройки удаляют со страницы JS, скрытые элементы, неиспользуемые стили, не скачивают видео итд. Так что покопайтесь в настройках чтобы получать нужный вам результат.

Я проверил на своей последней статье, работает отлично, в комментах приложу html файл, он работает даже на телефоне.

Вдохновлено https://t.me/bpblog/1219


По порядку:
1) увеличенное до 512 на 512 изображение для x*y, размером 256 на 256
2) предыдущий подход к подсчёту умножения
3) новый подход к подсчёту умножения

Сравните левый верхний край для всех трёх изображений. Я стремлюсь к тому, чтобы картинка была как на 1, но с большим числом деталей, но на двух подходах приходится идти на жертвы.


Похоже я пришёл к более-менее компромиссному решению проблемы с увеличением разрешения для формулы умножения.

В общем если рисовать картинку для разрешения 512 на 512, но рисовать её до 1024 на 1024, то с умножением мы получаем то, что хотели. Ну я и написал это в формулу, только, чтобы картинка 1024x1024 уменьшалась до 512x512.




Кому интересно, вот моя прога, с помощью которой я получал эти картинки. Будьте осторожны, в ней нет кнопки "назад" (а очень хотелось бы).

Depth задаёт сложность формулы, это означает что картинка будет более интересной, и что будет намного больше всякой фигни.

Save сохраняет картинку с формулой в названии в bmp файл.

Кидайте мне в личку если найдёте что-то красивое)


Нет, не потерял, урра! Вот эта формула:
mod(mod(mod(~x, 2*x), ~y), 128) - usin(x*y*y*y)

А что делают функции mod, usin можно посмотреть здесь.


Видео недоступно для предпросмотра
Смотреть в Telegram


Видео недоступно для предпросмотра
Смотреть в Telegram


А щас покажу как я пытался анимировать эти формулы)


А вот эта картинка мне понравилась больше всего, и одно время была аватаркой на моём гитхабе. Так понравились мне эти свисающие столбы с таким типо шумом телевизора. Но, похоже, формулу этой картинки я потерял(((


Опять же одна и та же формула, использующая умножение на большом и маленьком разрешении. Всё зашумилось, потому что числа большие.


Вот умножение на маленьком и большом разрешении. Как видно, на большом разрешении между пикселями маленького разрешения получается много шума, поэтому оно выглядит так.

Показано 20 последних публикаций.

143

подписчиков
Статистика канала