Data Science: Алгоритмы и Структуры данных
7.64K subscribers
474 photos
46 videos
6 files
3.43K links
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников.

Ссылка: @Portal_v_IT

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

Канал на бирже: https://telega.in/c/structuredata
Download Telegram
В умелых руках и sed — балалайка или пишем «Морской бой» на регулярках

Морской бой — простая игра, в которую можно научить играть даже первоклассника. Тридцать лет назад реализацию этой игры на компьютере можно было продавать. Десять лет назад написание морского боя на любимом языке было хорошим упражнением для будущего программиста. Сегодня, когда с написанием такой игры справится и продвинутая нейронка, сложно кого-то удивить очередной ее реализацией. Но я все же попробую.
Я решил написать морской бой на sed — потоковом текстовом редакторе из набора стандартных юниксовых утилит. Обычно его применяют для того, чтобы заменить в потоке или файле одну регулярку на другую. Но дополнительные директивы, которые есть в sed, формируют Тьюринг-полный язык, на котором теоретически можно написать что угодно.

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

Алгоритмы и Структуры данных
В умелых руках и sed — балалайка или пишем «Морской бой» на регулярках

Морской бой — простая игра, в которую можно научить играть даже первоклассника. Тридцать лет назад реализацию этой игры на компьютере можно было продавать. Десять лет назад написание морского боя на любимом языке было хорошим упражнением для будущего программиста. Сегодня, когда с написанием такой игры справится и продвинутая нейронка, сложно кого-то удивить очередной ее реализацией. Но я все же попробую.
Я решил написать морской бой на sed — потоковом текстовом редакторе из набора стандартных юниксовых утилит. Обычно его применяют для того, чтобы заменить в потоке или файле одну регулярку на другую. Но дополнительные директивы, которые есть в sed, формируют Тьюринг-полный язык, на котором теоретически можно написать что угодно.

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

Алгоритмы и Структуры данных
Самый старый кирпич трансформера наконец переизобрели. DeepSeek взял матрицу из 1967 года

За
attention-механизм с 2017 года брались сотни раз: sparse attention, linear attention, MoE, MLA, скользящие окна, что только не. А вот residual connection, остаточная связь, та самая x + F(x) из ResNet 2016 года, простояла почти десять лет нетронутой. Её просто унаследовали из résnet'ов, воткнули в трансформер и забыли.
31 декабря 2025-го DeepSeek выложил на arXiv препринт, где взялся именно за этот кирпич. И что показательно, загрузил его на arXiv лично основатель компании Liang Wenfeng, он же в соавторах. Когда основатель сам публикует статью, это обычно значит, что она ляжет в следующую флагманскую модель. Так и вышло: mHC поехал в DeepSeek V4, который выкатили 24 апреля 2026-го.
Разберём, что они сделали, почему это работает и при чём тут матрица из шестидесятых.

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

Алгоритмы и Структуры данных
Я попробовал считать нейросетевой слой в конечном поле Галуа GF(137): 4x по памяти, ARM NEON и честные ограничения

В современных нейросетях критически важно, сколько физической памяти занимает каждый параметр. В этой работе я попытался уйти от классического float32 в нейросетевом слое к uint8 без квантования. Для этого все вычисления проводились сразу по правилам арифметики остатков в конечном поле Галуа GF(137).
Стоит сказать, что это не замена обычному инференсу и не попытка доказать, что все должны срочно переписать модели на вычеты по модулю 137. Я взял небольшой слой, байтовые веса, нативное ядро, ARM NEON и несколько базовых реализаций для сравнения.
Спойлер: на маленьком контрольном запуске байтовая модель заняла около 1.63 KB вместо 6.50 KB, при этом 1000 прямых проходов в ARM NEON режиме заняли всего 12.1 ms. В лучшем случае на выборке это дает около 4x по памяти и до 4.86x по времени относительно базовой NumPy float32-реализации.

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

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

В 1996 году, во время учёбы в военном институте по специальности «программирование», на занятиях по кодированию данных мне пришла идея. Что если построить бинарное преобразование по правилу:

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

Алгоритмы и Структуры данных
📣 Мышка вертикальная беспроводная

Цена: ~1900₽
Рейтинг: 4.8😀
Отзывов: 3.552 💬

🖱 Заказать

Вертикальная беспроводная мышь с поддержкой Bluetooth 5.2, Bluetooth 3.0 и 2.4 ГГц. Эргономичная форма помогает снизить нагрузку на кисть во время долгой работы за компьютером, а возможность подключения к нескольким устройствам удобна для тех, кто переключается между рабочим ноутбуком, домашним ПК и планшетом.

#мышь #вертикальная

Больше товаров
- Находки Программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
Публичный мок АА в Яндексе: опыт, который не заменит никакая подготовка

Современный разработчик не упускает возможностей — отказаться от мок-собеса в Яндекс я не смог. Отдельная благодарность двум людям, без которых этого опыта не было бы: Оле Рыбаковой, которая предложила попробовать себя в прохождении мока — и это дорогого стоит, когда человек помогает, не будучи обязан это делать. И Наде Безносовой, продюсеру мероприятия — она ввела нас в формат и сделала всё для нашего комфорта.

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

Алгоритмы и Структуры данных
Я попробовал считать нейросетевой слой в конечном поле Галуа GF(137): 4x по памяти, ARM NEON и честные ограничения

В современных нейросетях критически важно, сколько физической памяти занимает каждый параметр. В этой работе я попытался уйти от классического float32 в нейросетевом слое к uint8 без квантования. Для этого все вычисления проводились сразу по правилам арифметики остатков в конечном поле Галуа GF(137).
Стоит сказать, что это не замена обычному инференсу и не попытка доказать, что все должны срочно переписать модели на вычеты по модулю 137. Я взял небольшой слой, байтовые веса, нативное ядро, ARM NEON и несколько базовых реализаций для сравнения.
Спойлер: на маленьком контрольном запуске байтовая модель заняла около 1.63 KB вместо 6.50 KB, при этом 1000 прямых проходов в ARM NEON режиме заняли всего 12.1 ms. В лучшем случае на выборке это дает около 4x по памяти и до 4.86x по времени относительно базовой NumPy float32-реализации.

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

Алгоритмы и Структуры данных
Как я создавал алгоритм шифрования под влиянием шифра Вернама

Самодельные шифры — зло. Зачем создавать собственный шифр, если есть… Кстати, а что есть? Есть известные шифры, которые пока ещё никто не взломал и есть не менее известные шифры, которые сначала считались надёжными, но потом в них нашли серьёзные уязвимости. А ещё у каждого (пока ещё) стойкого шифра есть как свои сторонники, так и свои противники. Хуже того, регулярно находятся чудаки, которые не разбираются в шифровании, но создают свои собственные шифры. И ладно бы молча пользовались ими сами, так они ещё их публикуют. А данная статья — лишь очередное подтверждение этого явления.

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

Алгоритмы и Структуры данных
Большинство исследований в компьютерной томографии нельзя воспроизвести

Мы не собирались писать эту статью. Мы всего лишь хотели воспроизвести результаты открытого бенчмарка ICASSP-2024 по низкодозовой компьютерной томографии, сравнить их с алгоритмами Smart Tomo Engine и понять свое место относительно опубликованных baseline и SOTA-решений.
Сначала всё шло по плану. Потом более быстрый алгоритм неожиданно оказался точнее более медленного. Затем на картах ошибок начали повторяться странные структуры. А спустя несколько дней выяснилось, что часть измеряемого качества может определяться не реконструкцией томографических данных, а особенностями самого бенчмарка.
Так обычная задача воспроизведения результатов превратилась в расследование. В этой статье мы покажем, что именно удалось обнаружить, почему воспроизводимость в компьютерной томографии оказывается намного сложнее, чем кажется, и почему хороший результат в таблице лидеров не всегда означает хороший алгоритм.

https://habr.com/ru/companies/smartengines/articles/1044162/

Алгоритмы и Структуры данных
Большинство исследований в компьютерной томографии нельзя воспроизвести

Мы не собирались писать эту статью. Мы всего лишь хотели воспроизвести результаты открытого бенчмарка ICASSP-2024 по низкодозовой компьютерной томографии, сравнить их с алгоритмами Smart Tomo Engine и понять свое место относительно опубликованных baseline и SOTA-решений.
Сначала всё шло по плану. Потом более быстрый алгоритм неожиданно оказался точнее более медленного. Затем на картах ошибок начали повторяться странные структуры. А спустя несколько дней выяснилось, что часть измеряемого качества может определяться не реконструкцией томографических данных, а особенностями самого бенчмарка.
Так обычная задача воспроизведения результатов превратилась в расследование. В этой статье мы покажем, что именно удалось обнаружить, почему воспроизводимость в компьютерной томографии оказывается намного сложнее, чем кажется, и почему хороший результат в таблице лидеров не всегда означает хороший алгоритм.

https://habr.com/ru/companies/smartengines/articles/1044162/

Алгоритмы и Структуры данных
О подборе игроков

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

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

Алгоритмы и Структуры данных
👍1
Преобразование числа в строку методом умножения на 10

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

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

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

Алгоритмы и Структуры данных
Преобразование Фурье в цифровой обработке сигналов. Часть 1: Дискретное преобразование Фурье

Преобразование Фурье - это математический инструмент, который переводит сигнал из временной области в частотную. Проще говоря, оно раскладывает сложный сигнал на простые составляющие - синусоиды и косинусы разных частот, амплитуд и фаз. Как химик разлагает вещество на отдельные элементы, так и преобразование Фурье «разбирает» сигнал на его частотные компоненты.
В этой статье мы начинаем погружение в одну из фундаментальных тем цифровой обработки сигналов (ЦОС) - дискретное преобразование Фурье (ДПФ). Именно ДПФ служит математической основой для понимания более сложных методов спектрального анализа и является отправной точкой для изучения всех остальных видов преобразования Фурье в ЦОС.

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

Алгоритмы и Структуры данных
❤1
Как мы перепридумали голосовую активацию для Яндекс Дропс и уместили новую модель в 200 килобайт

Голосовая активация в умных колонках — задача в целом решённая: несколько микрофонов, стабильное питание от розетки, хороший процессор. А вот перенести то же самое в наушники оказалось совсем другой историей.

Крошечный аккумулятор, мало памяти, чип с жёсткими ограничениями по тактовой частоте, да ещё и с кое‑какими неожиданным сюрпризами на уровне SDK. Всё это потребовало переосмыслить с нуля архитектуру споттера (компонента, который распознаёт обращение «Алиса» прямо на устройстве).

Меня зовут Григорий Афанасенко, я работаю в команде голосовых технологий Яндекса. Сегодня мы запустили Яндекс Дропс — первое носимое ИИ‑устройство с Алисой AI. В этой статье я расскажу, как мы адаптировали споттер под железо наушников, какие решения пришлось принять, где мы наступили на грабли и что планируем делать дальше.

https://habr.com/ru/companies/yandex/articles/1042706/

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

Всё началось с простого вопроса: почему малый бизнес теряет клиентов ночью?

Клиент заходит на сайт в 23:00, пишет в чат — и уходит. Потому что менеджер спит. Утром менеджер видит сообщение, перезванивает — а клиент уже купил у конкурента.

Стандартное решение — чат-бот. Но обычный чат-бот либо ограничен заранее заданными сценариями, либо требует интеграции с крупными облачными LLM. (отвечает по скриптам), либо слишком дорогой (GPT-4 за десятки тысяч в месяц), либо хранит данные за рубежом, что не всегда удобно для российского бизнеса.

Я решил сделать иначе.

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

Алгоритмы и Структуры данных
UVS: честность розыгрыша как факт, который можно пересчитать, а не как бумажка, которой никто не верит

15 лет я разрабатываю игровые системы и слот-механики. С отделами комплаенса старался не пересекаться, но однажды пришлось написать для сертификационной лаборатории официальное, подробное описание алгоритма. Я сделал его технически точным, сдал — и понял, что его никто не прочитал и не перепроверил. Лаборатория проставила галочки, взяла деньги, выдала бумажный сертификат. Через два часа можно было выкатить хотфикс в прод, и сертифицированный хеш превращался в труп — но это уже никого не волновало.
Индустрия живёт на мёртвой бумаге, а не на проверке в реальном времени
. И это касается не только казино: любая жеребьёвка, лотерея, гача-баннер, распределение мест в школу или раздача билетов на ивент — везде один и тот же провал. Есть «✓ Provably Fair», server seed, хеш — но почти никто никогда это не проверяет, а часто и не может, включая самого оператора.

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

Алгоритмы и Структуры данных
❤1
Гиперсвязные нейронные сети. Имитация биологических нейронов: ОС, прунинг, ингибирование и межбатчевая связь

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

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

Алгоритмы и Структуры данных
HFT + LLM: почему «просто добавить ИИ» не работает и как строить системы без потери микросекунд

Если вы читали восторженные статьи о том, как ИИ трансформирует финансовые услуги, у вас могло сложиться впечатление, что внедрение больших языковых моделей и агентных систем в институциональные торговые среды — это в первую очередь инженерная задача: нужно лишь выбрать подходящую модель, настроить нужные параметры и дождаться роста эффективности.
Проработав почти пять лет архитектором по ИИ и интеграциям для платформы, обрабатывающей HFT-данные петабайтного масштаба более чем для 100 институциональных клиентов, включая Bank of America, Merrill Lynch, JPMorgan Chase и Citigroup, Лев Яцемирский, директор по искусственному интеллекту и интеллектуальным системам в Банке Монреаля, утверждает, что такое представление упускает самую важную часть проблемы. Самая сложная часть применения ИИ в высокочастотном трейдинге — это не сам ИИ. Это ограничения.

https://habr.com/ru/companies/finam_broker/articles/1046413/

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

Когда я учился в университете, то активно изучал английские слова. Тогда ещё не использовал какой-то специальный софт для этого. Я просто записывал слова в тетрадь: в первом столбце — слово на английском, во втором — транскрипция, в третьем — перевод на русский.

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

Алгоритмы и Структуры данных
Алгоритмы векторного поиска: IVF и HNSW

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

Заодно мы затронем тему метрик, чтобы понять, как вообще сравнивают эмбеддинги. Рассмотрим вспомогательный и очень простой алгоритм k-means из классического ML’а, лежащий в основе IVF.

И наконец, подробно разберем два самых главных алгоритма IVF и HNSW с примерами их реализации на Python’е.

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

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