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

Ссылка: @Portal_v_IT

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

Канал на бирже: https://telega.in/c/structuredata
Download Telegram
Q-LLL: как мы сделали LLL-редукцию наблюдаемой, управляемой и проверяемой

LLL-редукция давно стала одним из базовых инструментов вычислительной математики, теории чисел, криптографии и анализа решёток. Обычно LLL воспринимается как “чёрный ящик”: на вход подаётся целочисленный базис, внутри выполняется последовательная редукция, на выходе получается новый базис, который удовлетворяет классическим условиям LLL.

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

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

Алгоритмы и Структуры данных
Размышления на тему задач стоящих перед ИТ‑специалистами и опрос

Это статья написана дипломированным инженером‑конструктором (по первому образованию), разработчиком систем автоматизированного проектирования (САПР) и (по известным причинам) вынужденно ставшим сертифицированным специалистом по системам офисного документооборота.

С развитием интернета и всеобщей массовой коммуникации сфера интересов разработчиков сместилась в область запросов потребителей развлекательного контента. И это весьма прискорбно. А тут ещё ИИ (Ai) подоспел, и все окончательно забыли о действительно полезных задачах автоматизации инженерного проектирования. Справедливости ради стоит отметить, что есть ещё задачи бизнеса, тоже весьма популярные в определённых кругах. А также математическое моделирование, инженерная графика, различные узкоспециализированные приложения.

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

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

ChatGPT, Claude и DeepSeek уже стали базой. Но главный тренд 2026 года – автономные AI-агенты, которые не просто отвечают на запросы, а сами выполняют ваши рабочие задачи и рутину.

На бесплатном практикуме команда Зерокодера покажет, как установить и настроить OpenClaw – локального AI-агента для работы и автоматизации задач.

В эфире покажут:

– как установить и настроить OpenClaw;
– как автоматизировать рутину и сократить количество ручных действий;
– как собрать мощнейшую рабочую связку Claude + OpenClaw + Cursor;
– как встроить AI-агента в текущую работу и ускорить процессы;
– как ускорить текущие процессы без найма дополнительных людей.

Это не вебинар «с нуля в IT» – это практикум для тех, кто уже использует ИИ и хочет выйти на следующий уровень.

🎁 Бонус: гайд по установке и настройке OpenClaw на вашем ПК.

Бесплатный практикум – по ссылке.
Свой маленький GIS: приложение для мультиспектральных и гиперспектральных снимков

Привет, Хабр. Меня зовут Алексей, я C#-разработчик. В этой статье хочу рассказать о своём проекте очень запавшем мне в душу, который я делал на тему обработки изображений, GIS и дистанционного зондирования Земли. Сделан он несколько лет назад в рамках дипломной работы, но даже спустя годы мне интересна данная тема и она по-прежнему остаётся очень перспективной в различных отраслях.

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

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

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

Именно nonce — одно из самых хрупких мест ECDSA и Schnorr-подписей. Не потому, что сами протоколы “плохие”, а потому, что они требуют дисциплины: каждый nonce должен быть секретным, уникальным и достаточно случайным. Если nonce повторился, частично утёк, оказался слишком коротким или начал следовать закономерности, приватный ключ может стать вычислимым.

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

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

Всем привет! Меня зовут Андрей, я финалист ICPC (Международной студенческой олимпиады по программированию), разработчик Техплатформы Городских сервисов Яндекса. Эта статья — концентрат неочевидных (а порой и контринтуитивных) советов по подготовке к соревнованиям. Годами я тренировался, набивал шишки на контестах и набирался мудрости у топовых тренеров, чтобы собрать этот опыт в одном месте.
Олимпиадное программирование — это настоящий спорт, где важно грамотно выстроить процесс тренировок и научиться применять свои навыки в условиях ограниченного времени. За годы участия в самых разных конкурсах и турнирах я понял, что успех складывается не из зубрёжки сложных алгоритмов, а из ежедневной практики, работы над ошибками и правильного баланса между теорией и практикой.
В статье я расскажу о своём опыте подготовки к различным чемпионатам по алгоритмам и поделюсь лайфхаками, как подготовиться к любому серьёзному челленджу.

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

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

Всем привет! Меня зовут Андрей, я финалист ICPC (Международной студенческой олимпиады по программированию), разработчик Техплатформы Городских сервисов Яндекса. Эта статья — концентрат неочевидных (а порой и контринтуитивных) советов по подготовке к соревнованиям. Годами я тренировался, набивал шишки на контестах и набирался мудрости у топовых тренеров, чтобы собрать этот опыт в одном месте.
Олимпиадное программирование — это настоящий спорт, где важно грамотно выстроить процесс тренировок и научиться применять свои навыки в условиях ограниченного времени. За годы участия в самых разных конкурсах и турнирах я понял, что успех складывается не из зубрёжки сложных алгоритмов, а из ежедневной практики, работы над ошибками и правильного баланса между теорией и практикой.
В статье я расскажу о своём опыте подготовки к различным чемпионатам по алгоритмам и поделюсь лайфхаками, как подготовиться к любому серьёзному челленджу.

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

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

Начну с признания: истории формата «природа оптимизирует лучше людей» меня обычно раздражают, слишком уж часто это все притянуто за уши. Но с муравьями история действительно странная, и мне ее захотелось проверить.
Короткая справка по нашему герою. Аргентинский муравей Linepithema humile в миллиметр длиной, с глазами у него все плохо, а в мозге около 250 000 нейронов (у нас, напомню, 86 млрд). Карты местности он не помнит. 
В 1989 году четверо бельгийских биологов поставили этим муравьям простой эксперимент — гнездо, еда, два мостика, где один длиннее другого в два раза. Через несколько минут вся колония сошлась на короткой ветке в 100% прогонов. И все это без координатора, без плана и без голосования. 
Через три года этот эксперимент превратится в Ant Colony Optimization — алгоритм, который я сегодня натравлю на классический TSP-бенч и получу 0,10% отставания от оптимума. А в 2023, через 34 года после наблюдений в Брюсселе, тот же алгоритм вернулся на NeurIPS в качестве бэкбона для графовых нейросетей. Что же, приступим.

https://habr.com/ru/companies/selectel/articles/1031574/

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

Современные нейросети часто воспринимаются как черная магия. Вы закидываете в черный ящик датасет, ждете пару часов, и вот уже модель пишет за вас код, генерирует картины и безошибочно отличает собаку от выпечки. Но под капотом нет никаких заклинаний. Вся эта вычислительная мощь держится на одном элегантном алгоритме, основы которого были заложены еще в 1970-х годах — обратном распространении ошибки (Backpropagation).
Сейчас порог входа в машинное обучение низок как никогда. Чтобы заставить сеть учиться, достаточно написать loss.backward() в PyTorch или вызвать model.fit() в Keras. Фреймворки берут всю математическую рутину на себя. Это чертовски удобно, но порождает проблему: мы получаем разработчиков, которые умеют собирать архитектуры из готовых блоков-лего, но впадают в ступор, если спросить их, что именно происходит при вызове backward(). Как сеть понимает, какой конкретно вес в десятом слое виноват в том, что на выходе получилась ерунда?
В этой статье мы снимем покров тайны. Мы разберем backprop на пальцах и понятных аналогиях, сдуем пыль со школьного учебника алгебры (не пугайтесь, нам понадобится только база) и напишем этот алгоритм с полного нуля на чистом Python.

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

Алгоритмы и Структуры данных
«Алгоритмы на языке Go». Книга, которую ждали

Сегодня познакомим вас с самой долгожданной новинкой апреля — книгой «Алгоритмы на языке Go», которую мы успели выпустить в продажу 30 числа.
Автор книги — Артём Михайлов, пишущий на Хабре под ником Morettom @morett1m, Go- и Rust-разработчик, также ведущий телеграм-канал  t.me/coreartem.
Внимательные читатели не будут удивлены увидеть эту книгу, поскольку мы систематически наполняем наш ассортимент качественными книгами по алгоритмам для очень разной целевой аудитории. Наиболее фундаментальный труд в этой области, который мы переиздаём и допечатываем на протяжении многих лет — это «Алгоритмы» Стивена Скиены (сейчас актуально 3-е издание). Важнейшие книги по алгоритмам для начинающих, которые мы выпустили в последние годы – это «Алгоритмический тренинг. Решение практических задач на Python и C++» Максима Иванова и «Базовые алгоритмы. Реализация на Python и C++ на примере классических игр»  Павла Довгалюка.

https://habr.com/ru/companies/bhv_publishing/articles/1032182/

Алгоритмы и Структуры данных
Bug fingerprinting для UI: почему stack trace не работает и что вместо

TL;DR: Sentry дедуплицирует backend‑ошибки по хешу (error class + top stack frame + module). Для UI‑багов этот рецепт ломается — у expect(button).toBeVisible() нет stack frame в продуктовом смысле, есть локатор + assertion + URL. В webtest‑orch я собрал composite SHA-256 fingerprint из (normalized_selector | assertion type | error class | URL template | message[:80]) с тремя rules нормализации (:nth-child, UUID, /users/123 → /users/:id). Это даёт стабильный 8-hex BUG-id который выживает прогоны и даёт diff new / regression / persisting / fixed без БД и embedding«ов.»

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

Алгоритмы и Структуры данных
Можно ли вычислить секретный ключ HMAC, если научиться инвертировать хеш-функции?

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

Предлагаю в этой статье пойти дальше и рассмотреть оракул, способный найти прообраз (точнее, совокупность возможных прообразов) заданного хеш-кода конкретной хеш-функции. Поскольку хеш-функции часто используются в более сложных конструкциях, предлагаем посмотреть и порассуждать, как наличие такого оракула влияет на свойства вышележащих криптографических механизмов. В качестве их примера рассмотрим конструкции HMAC (Hash-based Message Authentication Codes – коды аутентификации сообщений на основе хеширования).

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

Алгоритмы и Структуры данных
Невидимый враг многопоточности: False Sharing и кэш-линии процессора

Представьте типичную ситуацию: вы оптимизируете высоконагруженный бэкенд или сетевой сервис. И абсолютно неважно, на чем вы пишете — C++, Java, Go или C#. У вас есть несколько потоков, и вы решаете избавиться от медленных блокировок. Ведь мьютексы — это узкое горлышко, верно?

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

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

Алгоритмы и Структуры данных
🔥1
Почему нейросети — это тупик? Новый взгляд на архитектуру искусственного интеллекта

Мы живём во времена высоких технологий, ну, по крайней мере, мы так считаем. Но проблема в том, что эти технологии для большинства это так называемые «черные ящики». Спроси у друга, знает ли он, как устроена микроволновка? Скорее всего нет. И это проблема. Но сейчас не о микроволновках, я хочу сфокусировать ваше внимание на искусственном интеллекте. Я бы назвал это вершиной всех «чёрных ящиков», потому что его влияние в современном мире колоссально. К сожалению, авторы выпустили в мир монстра и до сих пор не поняли, насколько он опасен. Мы разберём механику работы ИИ (а точнее проблемы) и начнём выстраивать новый тип модели искуственного интеллекта с помощью выведенных мной систем: ОСНиУ (онтология согласовательной направленности и удержания) и РОА (рефлексивная онтологическая архитектура, второй порядок).

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

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

Алгоритмы и Структуры данных
Модуль collections в Python: ваш чит-код для решения алгоритмических задач

Если вы хоть раз пытались вкатиться в алгоритмы, решали задачки на LeetCode или готовились к собеседованиям, то наверняка ловили в лицо обидную ошибку Time Limit Exceeded (TLE). Вроде бы логика решения идеальная, на базовых тестах всё работает, но при отправке код отваливается по времени.
Самая классическая причина такой боли у новичков — банальное list.pop(0).
Когда вы пишете эту строчку, чтобы достать первый элемент из очереди, Python не просто забирает значение. Обычный список под капотом — это динамический массив. Удалив первый элемент, язык вынужден сдвинуть все оставшиеся элементы на одну позицию влево. Если в списке миллион элементов, это миллион операций ради одного удаления. Итог: скрытая сложность  там, где вы ожидали быстрый ответ, и проваленный тест.

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

Алгоритмы и Структуры данных
Конвейеры формирования изображений. Часть 2: Баланс белого и преобразование к стандартному наблюдателю

С вами снова Егор Ершов, руководитель группы «Цветовая вычислительная фотография» в AIRI и заведующий сектором репродукции и синтеза цвета ИППИ РАН. Я продолжаю свой цикл статей по мотивам лекций по вычислительной фотографии, и в прошлый раз мы приступили к разбору типичных конвейеров формирования изображения, заложенных в наши профессиональные камеры и мобильные телефоны.
Типичный пайплайн — от нажатия кнопки затвора до сохранения файла — довольно внушителен по количеству шагов, грубо его можно разделить на подготовку сырого RAW‑изображения и последующую обработку программными средствами. В предыдущей статье мы успели рассмотреть лишь первые два шага — регистрация света и дебайеринг, на этот раз поговорим про баланс белого и переход в пространство стандартного наблюдателя.

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

Алгоритмы и Структуры данных
Вариация на тему Рида-Соломона

В одном из проектов столкнулся с задачей кодирования данных с целью восстановления потерянных пакетов. Поскольку обработка пакетов осуществлялась полностью на цифровом уровне без доступа к информации от аналогового приемника (hard-decision), то я решил использовать код Рида-Соломона (РС). Обработка пакетов осуществлялась на контроллере esp32-s3, который среди прочего имеет возможность работы с векторами. И необходимо иметь большую силу воли, чтобы не воспользоваться этой интересной возможностью для ускорения вычисления. Собственно эта краткая статья посвящена адаптации и модификации кода РС для возможности использования векторных операций на этом контроллере.

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

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

Эта статья о том, как получить грубый расчёт деградации системы ещё до релиза. Без отказа от хаос-инжиниринга или мониторинга, а как шаг перед ними. Я расскажу о двух экспериментах, в которых топологическая модель автоматически извлекалась из распределённых трейсов, после чего на ней просчитывались сценарии отказов методом Монте-Карло. Результаты моделирования я затем сравнивал с реальными инъекциями отказов на стендах DeathStarBench и OpenTelemetry Demo.

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

Алгоритмы и Структуры данных
1
Метрика EICS — ищем у трансформера причинное место

У больших языковых моделей есть неприятное свойство: снаружи ответ может выглядеть одинаково уверенно и тогда, когда модель действительно «собрала» правильную причинную цепочку, и тогда, когда она просто выдала правдоподобный текст. Классические способы оценки неопределённости — энтропия распределения токенов, калибровка, ансамбли, conformal prediction — полезны, но смотрят на модель как на чёрный ящик.
В этой статье я разберу другой подход: попробовать оценивать неопределённость не только по выходу модели, а по внутренней согласованности активной цепи трансформера. Речь пойдёт о метрике EICS — Effective Information Consistency Score. Идея в том, чтобы за один прямой проход получить численную оценку того, насколько найденная трансформерная цепь ведёт себя согласованно и насколько её макроуровневое описание действительно несёт интегрированную информацию.
Статья основана на исследовательской работе об оценке неопределённости в трансформерных цепях на основе согласованности эффективной информации. Здесь я намеренно убрал академическую подачу, оставив интуицию, формулы, алгоритм и практические ограничения.

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

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

ИИ это не про замену людей — это про усиление ваших умений и делегирование рутины. 80% контента уже делается с помощью ИИ и базовые навыки необходимы всем, кто работает с созданием контента.

Регистрируйтесь на бесплатный мини-курс, где вы получите готовое портфолио и научитесь:
— Писать продающие посты без «ИИ‑шаблонов»;
— Делать стильные визуалы для брендов и соцсетей;
— Проводить нейрофотосессии с реальными или вымышленными моделями;
— Готовить презентации, креативные арты и постеры.

Переходите по ссылке, чтобы получить доступ и бонусные материалы.

Реклама. Информация о рекламодателе по ссылкам в посте.
Как я превратила Obsidian в структурированную память для ИИ‑агентов

Эта статья про NOUZ — локальный MCP‑сервер между Obsidian и ИИ‑агентом. Он превращает базу заметок в структурированную память: с уровнями, связями и сигналами дрейфа.

Внутри — как я пришла к этой архитектуре и что она даёт агенту при работе с базой.

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

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