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

Ссылка: @Portal_v_IT

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

Канал на бирже: https://telega.in/c/structuredata
Download Telegram
Головоломка Ханойские башни на Java

Головоломка Ханойские башни (или Ханойская башня, или Towers of Hanoi) – классический пример задачи, в которой лучшее и самое наглядное решение основывается на рекурсии. Кроме того, эта задача иногда встречается на собеседованиях. Тем удивительнее, что последняя статья (хотя и весьма обстоятельная), посвященная этой задаче на Хабре датируется 2013-м годом и решение приводится на Delphi. Давайте исправим эту печальную ситуацию!

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

Алгоритмы и Структуры данных
Неплоский мир: как мы делаем рельеф настоящим

У нас в 2ГИС давно проходят эксперименты, связанные с рельефом. Мы это делаем не только для того, чтобы получить красивую завораживающую картинку, но и чтобы дать возможность пользователям глубже погружаться в окружающую среду, лучше ориентироваться на местности и принимать решения, от которых зависит качество прогулки или путешествия, комфорт и экономия времени и средств.

https://habr.com/ru/companies/2gis/articles/1004084/

Алгоритмы и Структуры данных
Неплоский мир: как мы делаем рельеф настоящим

У нас в 2ГИС давно проходят эксперименты, связанные с рельефом. Мы это делаем не только для того, чтобы получить красивую завораживающую картинку, но и чтобы дать возможность пользователям глубже погружаться в окружающую среду, лучше ориентироваться на местности и принимать решения, от которых зависит качество прогулки или путешествия, комфорт и экономия времени и средств.

https://habr.com/ru/companies/2gis/articles/1004084/

Алгоритмы и Структуры данных
🔥1
Обзор книг аналитика данных

Привет! Меня зовут Таня, я аналитик данных и люблю бумажный формат книг (если есть сомнения, сначала пробую электронную версию, но, если книга заходит, всегда беру бумажную версию). В этой статье честный обзор без рекламы, тех книг, которые я купила не так давно в бумажном формате.

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

Алгоритмы и Структуры данных
🔥1
Нейросеть без нейросети: как обучить классификатор Iris через SAT и запустить это на GPU

В прошлой статье я показывал,как мы в AGIQ Solver Enterprise применили квантово‑вдохновлённый популяционный подход на GPU для NP‑задач и получили ускорение на практических постановках в 50–100 раз по сравнению с последовательным перебором и плохо распараллеливаемыми схемами.

Сегодня — следующий шаг:покажу,как задачи машинного обучения можно кодировать в SAT/MaxSAT, а затем решать обычным NP‑солвером — тем же AGIQ Solver Enterprise.

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

Алгоритмы и Структуры данных
🔥1
ИИ будет писать код. Но кто возьмёт ответственность за жизнь программного обеспечения?

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

На протяжении многих лет индустрию программного обеспечения волновал один вопрос:

Кто будет писать код?

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

Алгоритмы и Структуры данных
🔥1
2 года, 7 попыток, 0 распознанных бордюров: как мы учились детектить ДТП в реалтайм без датасета

Привет, Хабр! Это команда дата-сайентистов Magnus Tech. В этом посте мы расскажем, как работали над одним общественно полезным проектом — алгоритмом, который распознает ДТП по видео с дорожных камер. Кейс будет интересен широкому кругу разработчиков, которые занимаются технологиями машинного зрения и обучения. В нем — наш долгий путь из множества попыток сделать точный алгоритм, несмотря на его настойчивые попытки быть неточным.

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

https://habr.com/ru/companies/magnus-tech/articles/738836/

Алгоритмы и Структуры данных
Нам не подошла ни одна среда для MARL в непрерывном пространстве — поэтому мы сделали CAMAR

Представьте задачу: есть куча роботов, и им всем надо куда‑то добраться, не столкнувшись с собратьями, а мы должны придумать для этого алгоритм. Это, если упрощать, и называется многоагентным планированием или MAPF — Multi‑Agent Pathfinding.

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

В общем, мы в команде «RL агенты» Лаборатории когнитивных систем искусственного интеллекта AIRI сделали свою среду‑бенчмарк под названием CAMAR, где можно обкатывать модели многоагентного обучения с подкреплением в непрерывном пространстве. Мы представили нашу статью про CAMAR на Main Track конференции AAAI‑2026 и на воркшопе WoMAPF’26 (тоже часть AAAI-2026). Заодно я, стажер‑исследователь команды и студент магистратуры ЦКМ МФТИ по имени Артём Пшеницын, решил рассказать о нашей разработке на Хабре.

https://habr.com/ru/companies/airi/articles/1006040/

Алгоритмы и Структуры данных
🤯1
Как отделаться «малой кровью» при компрометации секретных ключей

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

Различные методы эволюции ключей (терминология не устоялась, предпочитаю использовать такой перевод словосочетания «key-evolving techniques») асимметричных криптоалгоритмов позволяют защититься от компрометации секретных ключей путем периодической модификации ключевых пар. Подобная защита направлена не на предотвращение компрометации секретного ключа, а на минимизацию последствий такой компрометации: поскольку ключи периодически модифицируются, эволюционируют, данные методы позволяют ограничиться отрицательным воздействием компрометации ключа на свойство целостности или конфиденциальности сообщений, зашифрованных или подписанных только в течение определенного, относительно короткого периода, оставляя защиту сообщений других периодов ненарушенной.

https://habr.com/ru/companies/aktiv-company/articles/739090/

Алгоритмы и Структуры данных
1🔥1
Почему бизнес хочет FIFO и почему это не всегда «серебряная пуля»

Привет Хабр! Довольно часто на обсуждениях/созвонах слышу о том, что заказчики хотят реализовать очередность доставки с порядком. В этой статье я расскажу, почему требование FIFO зачастую является началом дорогого приключения.

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

Алгоритмы и Структуры данных
Решение задачи с собеседования используя технику Sliding Window на Go

Да, в интернете существует множество решений подобных задач, но, по моим ощущениям, они написаны сложным языком для начинающего программиста. Особенно мало материалов с примерами на Go. Когда я обучался алгоритмам, мне казалось, что данные темы можно объяснить куда проще существующих.

В этой статье я пошагово разберу технику "Sliding Window" ("Скользящее окно") и покажу, как с её помощью решить задачу Longest Substring Without Repeating Characters на Go.

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

Алгоритмы и Структуры данных
Собрал чат-бота за вечер → заработал 9 000₽.

Так и работают специалисты по чат-ботам:
открыл шаблон → собрал бота как конструктор → получил деньги.

Работы — на 2–3 часа.
Оплата — 9–15 000₽ за сборку.
Никакого программирования и долгих задач.

Если умеешь открыть ворд или запустить косынку — справишься.

А спрос сейчас бешеный:
более 10 000 предпринимателей в месяц ищут тех, кто делает ботов и авторассылки.
Это одна из самых простых и пустых ниш в онлайне — бери и зарабатывай.

И главное:
Собрать первого бота без опыта и получить клиента — проще, чем кажется.
Все инструкции лежат здесь:
👉 @other_digital_bot

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

Пробуй: @other_digital_bot
Одна Rust-библиотека вместо шести Python-пакетов — или как я перестала запускать фит и идти за кофе

Если вы живёте в Python и одновременно используете statsmodels, lifelines, pyhf, PyMC/BlackJAX, linearmodels (или что-то похожее).

Если вам важны воспроизводимость и понятная валидация численных оптимизаций (особенно в HEP).

Если вам интересна архитектура «одно вычислительное ядро → много задач» и практические hot paths (AOT, SIMD, zero-copy).

TL;DR: Если под капотом у многих статистических моделей — log‑likelihood и градиент, то почему вокруг этого столько разрозненных API и рантаймов? NextStat — AOT‑компилированное ядро на Rust с Python‑обёрткой: один вычислительный слой для likelihood‑based задач (в разных доменах). Мы разделили inference‑логику и численный backend, добавили детерминированный режим (parity) и контракт толерансов для валидации. На наших бенчмарках ускорения получаются от ~4× до сотен раз в конкретных сценариях (ниже — протоколы и оговорки).

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

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

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

Прошлая версия, которую я написал еще на .NET 7, справлялась за 32 минуты на моем компьютере. Большую часть времени занимало чтение-запись файлов, поэтому так применялись сжатие, параллельная обработка сортировки и ввода-вывода, а таже низкоуровневые манипуляции с массивом байт для уменьшения аллокаций.

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

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

Привет, Хабр! Мы — братья Лев и Марк Григорьевы. В рамках нашего R&D-проекта мы разрабатываем бортовую систему предиктивной диагностики для тяжелого коммерческого транспорта (тягачи, спецтехника).

Задачи в нашей небольшой команде разделены строго: Лев отвечает за аппаратную часть, схемотехнику и проект в целом, а Марк — за инженерию данных, разметку виброакустических датасетов и алгоритмы каскадной фильтрации.

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

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

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

В данной работе приведены около девяноста новых определений понятий (НОП), включая указанные в заголовке. Предложенные НОП имеют следующие преимущества: при их составлении соблюдена математическая точность, непротиворечивость в том числе с существующими понятиями в математике, больше соответствуют естественному русскому языку, краткие, большинство не содержат формул. НОП обозначаются словами «исконно русского языка», то есть часть русского языка, из которого исключены заимствования из других европейских языков. Приведенные НОП призваны дать качественную замену похожим понятиям в математике (ППМ), имеющим по сравнению с НОП следующие неустранимые недостатки:

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

Алгоритмы и Структуры данных
Разбор заданий по аналитике или как Яндекс отнял почти 6 часов моей жизни

Привет, Хабр! В попытках отчаянно найти подработку, которую можно было бы совмещать с учебой, листал я агрегатор стажировок, где и наткнулся на набор от Яндекса. Решив, что терять мне всё равно нечего, я быстро кликнул по ссылке, заполнил анкету, и буквально через минуту мне на почту пришло письмо с приглашением решить тестовое задание. Я подумал, что вечер наконец-то обещает быть интересным, заварил чаёк и уже собрался спокойно чилить следующие несколько часов, аристократически посёрбывая и иногда тыкая пальцем по клавиатуре.

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

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

Я был одержим процедурными картами с ещё детства, когда кидал кубики на таблицы случайных подземелий из AD&D Dungeon Master's Guide. В этом есть что-то волшебное — ты не проектируешь подземелье, а исследуешь его, помещение за помещением, а кубики решают, попадёшь ли ты в сокровищницу или в тупик с кучей крыс.

Спустя годы я решил создать собственный генератор карт. Он создаёт маленькие средневековые островные миры с дорогами, реками, побережьями, горами, лесами и деревьями. И всё это полностью процедурным образом. Генератор написан на Three.js WebGPU с TSL-шейдерами, примерно 4100 шестиугольников в 19 сетках генерируются за ~20 секунд.

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

Алгоритмы и Структуры данных
🔥1
Написал шахматный движок для 6×6 Crazyhouse — стал #1 на chess.com, а потом меня забанили

Меня зовут Владимир, я бэкенд-разработчик. Это моя первая статья здесь — о том, как пет-проект для нишевого варианта шахмат прошёл путь от «а что, если...» до первого места в рейтинге на chess.com. Без нейронок. На чистом alpha-beta поиске, написанном на Rust.

Статья будет полезна тем, кто интересуется шахматным программированием, оптимизацией CPU-bound задач или связкой Python + Rust через PyO3.

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

Алгоритмы и Структуры данных
Задача про красные и синие точки

Недавно друзья задали мне задачу по дискретной математике. Задача так сильно понравилась, что я решил поделиться ей с широким кругом, а также рассказать свое решение и предложенное авторами задачи.

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

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