Всё про Алгоритмы и Структуры данных – Telegram
Всё про Алгоритмы и Структуры данных
7.93K subscribers
328 photos
36 videos
5 files
2.8K links
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников.

Ссылка: @Portal_v_IT

Сотрудничество, авторские права: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/structuredata
Download Telegram
Решаем Wordle с 3,64 попыток в 99,4% случаев

Недавно я играл в головоломку Wordle, параллельно думая, как бы её могла решать программа.

[Прим. пер.: Wordle — игра в отгадывание слов, напоминающая «быки и коровы». Правила достаточно ясны по скриншоту выше.]

Первым делом я извлёк списки слов с сайта Wordle. Любопытно, что существует «целевой» список из 2315 слов, которые могут быть ответами, но и дополнительный список из 10657 возможных догадок — вариантов, которые могут вводить пользователи, но которые никогда не будут ответом. Если вам нужны эти списки, то в репозитории ниже есть пара set в формате Python.

https://habr.com/ru/articles/647391/

Алгоритмы и Структуры данных
6+ главных алгоритмов балансировки нагрузки

Балансировка нагрузки – процесс распределения входящих запросов между доступными серверами. Популярные подходы к балансировке по-разному решают проблему перегрузки системы. В этой статье мы рассмотрим принципы работы, преимущества, недостатки и оптимальные сценарии использования самых известных алгоритмов.

https://proglib.io/p/6-glavnyh-algoritmov-balansirovki-nagruzki-2024-08-06

Алгоритмы и Структуры данных
Создание интерактивного макета. Задача упаковки кругов в круг. Метод отжига

Я начала разработку интерактивного интерфейса для своего проекта «Florist». Центральным элементом сайта должен был стать интерактивный макет — с его помощью пользователь мог бы визуализировать различные цветочные дизайны, располагая в ячейках макета цветы из каталога. Я создала прототип, внедрила его в сайт и доработала окончательный дизайн до такой картинки:

https://habr.com/ru/articles/945846/

Алгоритмы и Структуры данных
Алгоритмы в повседневной жизни

Алгоритмы – это просто пошаговые инструкции для решения задачи. И если вы когда-либо собирали шкаф из IKEA, вы уже применяли алгоритм. Только без багов (надеюсь).

В этой статье не будет заумных сортировок массивов или хэш-таблиц в терминах C++. Вместо этого – про эффективное использование пространства и экономию времени в привычных вещах: поиска одежды, уборки квартиры и планирования дня.

https://habr.com/ru/articles/945994/

Алгоритмы и Структуры данных
Создавая непредсказуемость. Примеры использования генераторов случайных чисел

Генераторы случайных чисел (ГСЧ) – важнейшая составляющая разнообразных процессов, связанных с компьютерными программами, таких как криптография, моделирование, машинное обучение, игры, программирование, азартные игры, научные исследования – список можно продолжать. Но может возникнуть вопрос: как именно получить по-настоящему случайное значение, и почему это важно?

Оказывается, спонтанность — не самая сильная сторона компьютеров. Они
могут выполнять только те действия, на которые запрограммированы. Благодаря
ГСЧ, компьютеры приобретают способность генерировать уникальные неравномерно
распределенные числа. Иными словами, ГСЧ помогает компьютеру моделировать
непредсказуемость.

https://habr.com/ru/companies/piter/articles/646399/

Алгоритмы и Структуры данных
Осваиваем LLM: подробное знакомство с книгой Себастьяна Рашки «Создание LLM с нуля»

Недавно у меня появилась возможность прочитать книгу Себастьяна Рашки «Создание LLM с нуля», и, начав читать, я просто не мог её отложить.

Эта книга увлекательно сочетает исчерпывающую теорию, практическую реализацию кода и прекрасно и доходчиво объясняет одну из самых актуальных тем в области современного искусственного интеллекта: большие языковые модели (LLM). Как человек, который любит разбираться в тонкостях моделей ИИ, я считаю эту книгу настоящей жемчужиной. Ее обязательно нужно прочитать всем, кто серьезно интересуется LLM. Хочу отметить, что я никак не связан с автором или издателем; эта рецензия является исключительно отражением моего восхищения содержанием книги.

https://habr.com/ru/companies/piter/articles/946344/

Алгоритмы и Структуры данных
👍2
Инварианты: проектирование эффективных алгоритмов

Инварианты – мощный инструмент для анализа, оптимизации и доказательства корректности алгоритмов. Покажем, как можно их использовать для разработки максимально эффективных решений сложных задач.

https://proglib.io/p/invarianty-proektirovanie-effektivnyh-algoritmov-2024-07-15

Алгоритмы и Структуры данных
Жадные алгоритмы: все, что нужно знать для собеседования

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

https://proglib.io/p/zhadnye-algoritmy-vse-chto-nuzhno-znat-dlya-sobesedovaniya-2024-07-08

Алгоритмы и Структуры данных
Градиенты в нейронных сетях для поиска аномалий в данных

В основе машинного обучения лежит предположение, что данные для обучения, тестирования и применения взяты из одного и того же распределения. К сожалению, в процессе применения модели это предположение может нарушаться, что приводит к необъяснимым последствиям — сдвигу распределения. Особенно такие нарушения опасны в областях, где требуется быстро и точно принимать решения: медицина, финансы, self-driving cars.

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

https://habr.com/ru/companies/hsespb/articles/646219/

Алгоритмы и Структуры данных
Оптимизация генплана. Какая математика под капотом?

При любых строительных работах генеральный план является обязательной частью проекта. Готовый генплан предоставляет подробную информацию об объемах работ, объектах строительства, транспортных сообщениях и инженерных коммуникациях разного назначения.

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

https://habr.com/ru/companies/numdes/articles/599971/

Алгоритмы и Структуры данных
Не одним CRDT едины или P2P vs Authoritative в local-first приложениях

Сегодня поговорим про реализации решения конфликтов в local / offline-first – это когда ваше приложение позволяет пользователям работать полностью или частично оффлайн, а когда они выходят в сеть, синхронизировать все их изменения.

Примеры таких приложений: Notion-like редакторы, Figma-like вайтборды или Linear-like таск менеджеры.

Основная идея – коллаборация, а коллаборация несет за собой конфликты, разберем очень наглядный пример:

https://habr.com/ru/articles/946722/

Алгоритмы и Структуры данных
Мой опыт собеседования в Amazon
Это
история о моем опыте собеседования в Амазоне, почему мне в целом не понравилось по сравнению с другими FAANG. Так же тут будут ответы на “а что конкретно спрашивали на интервью, какие были задачки, что на систем дизайне было”, потому что мне не дали подписать NDA, все с пруфами, скринами и прочее.

https://habr.com/ru/articles/646319/

Алгоритмы и Структуры данных
Запуск Computer Science Space

Приветствуем любителей компьютерных наук! Хотим рассказать про новую инициативу: 1 марта в Санкт-Петербурге запустился Computer Science Space — открытый научно-технологический клуб для всех заинтересованных в современных и классических областях CS.

https://habr.com/ru/articles/946844/

Алгоритмы и Структуры данных
Прокачиваем RAG: тестируем техники и считаем их эффективность. Часть 1

При проектировании RAG-системы инженер каждый раз сталкивается с множеством вопросов: как получать чанки, какую векторную базу использовать, как организовать получение релевантной информации из базы, да даже выбор эмбеддера может занять приличное время — и это лишь вершина айсберга. Идеальным решением является перебор основных вариантов, затем оценка качества и выбор подходящих для конкретной задачи. Ведь то, что хорошо работает, например, для техподдержки, может провалиться в юридическом анализе, и наоборот.

К счастью, на GitHub есть прекрасный репозиторий, где автор собрал популярные RAG-техники с кодом и объяснениями. Репозиторий доступен по ссылке. Обязательно зайдите и поддержите автора.

https://habr.com/ru/articles/946888/

Алгоритмы и Структуры данных
Объяснение замощения мозаикой Пенроуза

Всем привет! Привожу перевод статьи Penrose Tiling Explained. Мне самому было интересно как устроен алгоритм прорисовки мозаики. Удивился простоте и хочу поделиться.. Помимо почти не исправленного машинного перевода добавил свой перевод предложенного алгоритма на язык TypeScript. Привожу ссылку на песочницу в конце статьи. Версия TypeScript дополнена интерактивной формой изменения параметров алгоритма. Играя с параметрами, можно понять большую часть алгоритма даже без чтения разъяснения.

https://habr.com/ru/articles/947046/

Алгоритмы и Структуры данных
Кольца Барромео и один забавный алгоритмический баг

Кольца Барромео — это конструкция из трёх колец, обладающая интересным свойством: эти кольца не сцеплены попарно между собой, но полная конструкция из трёх колец неразделима. Ну или если перефразировать: вся конструкция неразделима, но если любое из колец магическим образом пропадает, то оставшиеся два можно разделить. Единственное известное мне практическое применение этих колец — использование в качестве логотипа пива Ballantine. В прошлом году в моей практике повстречался интересный алгоритмический баг, который у меня ассоциируется именно с этой конструкцией.

https://habr.com/ru/articles/947202/

Алгоритмы и Структуры данных
Создание интерактивного макета. Задача упаковки кругов в круг. Метод отжига

Я начала разработку интерактивного интерфейса для своего проекта «Florist». Центральным элементом сайта должен был стать интерактивный макет — с его помощью пользователь мог бы визуализировать различные цветочные дизайны, располагая в ячейках макета цветы из каталога. Я создала прототип, внедрила его в сайт и доработала окончательный дизайн до такой картинки:

https://habr.com/ru/articles/945846/

Алгоритмы и Структуры данных
Оцениваем «естественность» изображений по первой цифре

Еще вчера фотография была «доказательством» того, что событие произошло. Сегодня любой школьник может сгенерировать или изменить изображение до неузнаваемости с помощью ИИ. Индустрия цифровой-криминалистики пытается угнаться за технологиями, разрабатывая все новые детекторы фальсификаций. Но что, если подойти к проблеме с другой стороны? Не искать следы конкретного алгоритма генерации, а задать более фундаментальный вопрос: насколько естественны статистические свойства этого изображения?

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

https://habr.com/ru/articles/947506/

Алгоритмы и Структуры данных