Всё про Алгоритмы и Структуры данных
الذهاب إلى القناة على Telegram
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников. Ссылка: @Portal_v_IT Сотрудничество, авторские права: @oleginc, @tatiana_inc Канал на бирже: https://telega.in/c/structuredata
إظهار المزيد7 767
المشتركون
لا توجد بيانات24 ساعات
-87 أيام
-4430 أيام
أرشيف المشاركات
Конвейеры формирования изображений. Часть 2: Баланс белого и преобразование к стандартному наблюдателю
С вами снова Егор Ершов, руководитель группы «Цветовая вычислительная фотография» в AIRI и заведующий сектором репродукции и синтеза цвета ИППИ РАН. Я продолжаю свой цикл статей по мотивам лекций по вычислительной фотографии, и в прошлый раз мы приступили к разбору типичных конвейеров формирования изображения, заложенных в наши профессиональные камеры и мобильные телефоны.
Типичный пайплайн — от нажатия кнопки затвора до сохранения файла — довольно внушителен по количеству шагов, грубо его можно разделить на подготовку сырого RAW‑изображения и последующую обработку программными средствами. В предыдущей статье мы успели рассмотреть лишь первые два шага — регистрация света и дебайеринг, на этот раз поговорим про баланс белого и переход в пространство стандартного наблюдателя.
https://habr.com/ru/companies/airi/articles/1032886/
Алгоритмы и Структуры данных
Модуль collections в Python: ваш чит-код для решения алгоритмических задач
Если вы хоть раз пытались вкатиться в алгоритмы, решали задачки на LeetCode или готовились к собеседованиям, то наверняка ловили в лицо обидную ошибку Time Limit Exceeded (TLE). Вроде бы логика решения идеальная, на базовых тестах всё работает, но при отправке код отваливается по времени.
Самая классическая причина такой боли у новичков — банальное
list.pop(0).
Когда вы пишете эту строчку, чтобы достать первый элемент из очереди, Python не просто забирает значение. Обычный список под капотом — это динамический массив. Удалив первый элемент, язык вынужден сдвинуть все оставшиеся элементы на одну позицию влево. Если в списке миллион элементов, это миллион операций ради одного удаления. Итог: скрытая сложность там, где вы ожидали быстрый ответ, и проваленный тест.
https://habr.com/ru/articles/1032834/
Алгоритмы и Структуры данныхПочему нейросети — это тупик? Новый взгляд на архитектуру искусственного интеллекта
Мы живём во времена высоких технологий, ну, по крайней мере, мы так считаем. Но проблема в том, что эти технологии для большинства это так называемые «черные ящики». Спроси у друга, знает ли он, как устроена микроволновка? Скорее всего нет. И это проблема. Но сейчас не о микроволновках, я хочу сфокусировать ваше внимание на искусственном интеллекте. Я бы назвал это вершиной всех «чёрных ящиков», потому что его влияние в современном мире колоссально. К сожалению, авторы выпустили в мир монстра и до сих пор не поняли, насколько он опасен. Мы разберём механику работы ИИ (а точнее проблемы) и начнём выстраивать новый тип модели искуственного интеллекта с помощью выведенных мной систем: ОСНиУ (онтология согласовательной направленности и удержания) и РОА (рефлексивная онтологическая архитектура, второй порядок).
Давайте углубимся в суть. Я не буду кидать вам сразу тонны текста своих работ, просто кратко изложу основы, если это вызовет отклик, я начну писать больше статей по этой теме, раскрывая глубину проработки.
https://habr.com/ru/articles/1032820/
Алгоритмы и Структуры данных
Невидимый враг многопоточности: False Sharing и кэш-линии процессора
Представьте типичную ситуацию: вы оптимизируете высоконагруженный бэкенд или сетевой сервис. И абсолютно неважно, на чем вы пишете — C++, Java, Go или C#. У вас есть несколько потоков, и вы решаете избавиться от медленных блокировок. Ведь мьютексы — это узкое горлышко, верно?
Вы применяете классический паттерн: вместо того чтобы потоки толкались локтями вокруг одной переменной, вы даете каждому потоку (или горутине) свой собственный, независимый счетчик. Нет общих данных — нет конфликтов. Вы запускаете нагрузочные тесты, ожидая увидеть красивое линейное ускорение, но профилировщик показывает странное. Потоки словно продолжают стоять в очереди, а код на многоядерной машине начинает работать едва ли не медленнее, чем на одном ядре.
https://habr.com/ru/articles/1032804/
Алгоритмы и Структуры данных
Можно ли вычислить секретный ключ HMAC, если научиться инвертировать хеш-функции?
Приветствую, Хабр! В анализе криптографических алгоритмов достаточно часто используется понятие оракула. Оракул – это некоторая гипотетическая вычислительная сущность, которая может мгновенно выполнять конкретные требуемые криптоаналитику операции. Например, выдавать истинно случайные числа (случайный оракул), или зашифровывать/расшифровывать данные на некотором априори известном оракулу ключе шифрования (соответственно, оракул зашифрования/расшифрования).
Предлагаю в этой статье пойти дальше и рассмотреть оракул, способный найти прообраз (точнее, совокупность возможных прообразов) заданного хеш-кода конкретной хеш-функции. Поскольку хеш-функции часто используются в более сложных конструкциях, предлагаем посмотреть и порассуждать, как наличие такого оракула влияет на свойства вышележащих криптографических механизмов. В качестве их примера рассмотрим конструкции HMAC (Hash-based Message Authentication Codes – коды аутентификации сообщений на основе хеширования).
https://habr.com/ru/companies/aktiv-company/articles/1031788/
Алгоритмы и Структуры данных
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/
Алгоритмы и Структуры данных«Алгоритмы на языке Go». Книга, которую ждали
Сегодня познакомим вас с самой долгожданной новинкой апреля — книгой «Алгоритмы на языке Go», которую мы успели выпустить в продажу 30 числа.
Автор книги — Артём Михайлов, пишущий на Хабре под ником Morettom @morett1m, Go- и Rust-разработчик, также ведущий телеграм-канал t.me/coreartem.
Внимательные читатели не будут удивлены увидеть эту книгу, поскольку мы систематически наполняем наш ассортимент качественными книгами по алгоритмам для очень разной целевой аудитории. Наиболее фундаментальный труд в этой области, который мы переиздаём и допечатываем на протяжении многих лет — это «Алгоритмы» Стивена Скиены (сейчас актуально 3-е издание). Важнейшие книги по алгоритмам для начинающих, которые мы выпустили в последние годы – это «Алгоритмический тренинг. Решение практических задач на Python и C++» Максима Иванова и «Базовые алгоритмы. Реализация на Python и C++ на примере классических игр» Павла Довгалюка.
https://habr.com/ru/companies/bhv_publishing/articles/1032182/
Алгоритмы и Структуры данных
Обратное распространение ошибки: от интуиции до кода
Современные нейросети часто воспринимаются как черная магия. Вы закидываете в черный ящик датасет, ждете пару часов, и вот уже модель пишет за вас код, генерирует картины и безошибочно отличает собаку от выпечки. Но под капотом нет никаких заклинаний. Вся эта вычислительная мощь держится на одном элегантном алгоритме, основы которого были заложены еще в 1970-х годах — обратном распространении ошибки (Backpropagation).
Сейчас порог входа в машинное обучение низок как никогда. Чтобы заставить сеть учиться, достаточно написать
loss.backward() в PyTorch или вызвать model.fit() в Keras. Фреймворки берут всю математическую рутину на себя. Это чертовски удобно, но порождает проблему: мы получаем разработчиков, которые умеют собирать архитектуры из готовых блоков-лего, но впадают в ступор, если спросить их, что именно происходит при вызове backward(). Как сеть понимает, какой конкретно вес в десятом слое виноват в том, что на выходе получилась ерунда?
В этой статье мы снимем покров тайны. Мы разберем backprop на пальцах и понятных аналогиях, сдуем пыль со школьного учебника алгебры (не пугайтесь, нам понадобится только база) и напишем этот алгоритм с полного нуля на чистом Python.
https://habr.com/ru/articles/1031986/
Алгоритмы и Структуры данныхСамый недооценённый навык в 2026 году – это вайбкодинг
Еще недавно про него толком никто не знал, а сейчас нейронки уже собирают проекты от идеи до релиза и экономят десятки часов работы.
И те, кто сейчас разберутся во всём этом, будут зарабатывать в разы больше тех, кто делает всё вручную. А чтобы научиться вайбкодить и не совершать ошибки - читайте канал AI-архитектор.
Автор уже открыл доступ к бесплатному уроку, где разобрал: что такое вайбкодинг, какие связки реально приносят от 100 000 ₽ за проект и почему 2026 год — последнее окно лёгкого входа в нишу.
Через 24 часа урок станет платным, поэтому подписывайтесь и забирайте доступ в закрепе: https://t.me/+enCc1EQHRGVmMGZi
Муравьи против трансформеров: старый алгоритм 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/
Алгоритмы и Структуры данных
Как подготовиться к алгоритмическим соревнованиям: опыт финалиста ICPC
Всем привет! Меня зовут Андрей, я финалист ICPC (Международной студенческой олимпиады по программированию), разработчик Техплатформы Городских сервисов Яндекса. Эта статья — концентрат неочевидных (а порой и контринтуитивных) советов по подготовке к соревнованиям. Годами я тренировался, набивал шишки на контестах и набирался мудрости у топовых тренеров, чтобы собрать этот опыт в одном месте.
Олимпиадное программирование — это настоящий спорт, где важно грамотно выстроить процесс тренировок и научиться применять свои навыки в условиях ограниченного времени. За годы участия в самых разных конкурсах и турнирах я понял, что успех складывается не из зубрёжки сложных алгоритмов, а из ежедневной практики, работы над ошибками и правильного баланса между теорией и практикой.
В статье я расскажу о своём опыте подготовки к различным чемпионатам по алгоритмам и поделюсь лайфхаками, как подготовиться к любому серьёзному челленджу.
https://habr.com/ru/companies/yandex/articles/1029668/
Алгоритмы и Структуры данных
Как подготовиться к алгоритмическим соревнованиям: опыт финалиста ICPC
Всем привет! Меня зовут Андрей, я финалист ICPC (Международной студенческой олимпиады по программированию), разработчик Техплатформы Городских сервисов Яндекса. Эта статья — концентрат неочевидных (а порой и контринтуитивных) советов по подготовке к соревнованиям. Годами я тренировался, набивал шишки на контестах и набирался мудрости у топовых тренеров, чтобы собрать этот опыт в одном месте.
Олимпиадное программирование — это настоящий спорт, где важно грамотно выстроить процесс тренировок и научиться применять свои навыки в условиях ограниченного времени. За годы участия в самых разных конкурсах и турнирах я понял, что успех складывается не из зубрёжки сложных алгоритмов, а из ежедневной практики, работы над ошибками и правильного баланса между теорией и практикой.
В статье я расскажу о своём опыте подготовки к различным чемпионатам по алгоритмам и поделюсь лайфхаками, как подготовиться к любому серьёзному челленджу.
https://habr.com/ru/companies/yandex/articles/1029668/
Алгоритмы и Структуры данных
ИИ меняет подход к аналитике бизнеса
3 июня Visiology проведёт бесплатный онлайн-эфир о том, как AI помогает быстрее работать с данными, сокращать ручную отчётность и получать ответы без долгой подготовки дашбордов. Это революция в управлении аналитикой.
Разберём, как корпоративный BI меняется после Power BI: self-service аналитика, AI-ассистенты, автоматизация отчётов, контроль метрик и сценарии для бизнеса, IT и аналитиков.
Будет полезно:
— аналитикам, которые хотят быстрее собирать отчёты и находить инсайты;
— IT-командам, которые отвечают за BI-инфраструктуру и безопасность данных;
— руководителям, которым нужны понятные метрики и быстрые управленческие решения.
Участие бесплатное. Количество мест ограничено. Успейте зарегистрироваться.
Узнать больше
#реклама 16+
ai.visiology.com
О рекламодателе
Nonce Observatory:
В криптографии есть странный класс ошибок: внешне всё выглядит правильно, подписи проходят проверку, публичный ключ корректен, транзакции валидны, протокол не нарушен — но где-то внутри генератор nonce начал вести себя не как случайный источник, а как механизм с памятью, смещением, повтором, коротким диапазоном или скрытой структурой.
Именно nonce — одно из самых хрупких мест ECDSA и Schnorr-подписей. Не потому, что сами протоколы “плохие”, а потому, что они требуют дисциплины: каждый nonce должен быть секретным, уникальным и достаточно случайным. Если nonce повторился, частично утёк, оказался слишком коротким или начал следовать закономерности, приватный ключ может стать вычислимым.
https://habr.com/ru/articles/1031858/
Алгоритмы и Структуры данных
Свой маленький GIS: приложение для мультиспектральных и гиперспектральных снимков
Привет, Хабр. Меня зовут Алексей, я C#-разработчик. В этой статье хочу рассказать о своём проекте очень запавшем мне в душу, который я делал на тему обработки изображений, GIS и дистанционного зондирования Земли. Сделан он несколько лет назад в рамках дипломной работы, но даже спустя годы мне интересна данная тема и она по-прежнему остаётся очень перспективной в различных отраслях.
https://habr.com/ru/articles/1031848/
Алгоритмы и Структуры данных
Пока вы спите – ИИ-агент закрывает задачи за вас
ChatGPT, Claude и DeepSeek уже стали базой. Но главный тренд 2026 года – автономные AI-агенты, которые не просто отвечают на запросы, а сами выполняют ваши рабочие задачи и рутину.
На бесплатном практикуме команда Зерокодера покажет, как установить и настроить OpenClaw – локального AI-агента для работы и автоматизации задач.
В эфире покажут:
– как установить и настроить OpenClaw;
– как автоматизировать рутину и сократить количество ручных действий;
– как собрать мощнейшую рабочую связку Claude + OpenClaw + Cursor;
– как встроить AI-агента в текущую работу и ускорить процессы;
– как ускорить текущие процессы без найма дополнительных людей.
Это не вебинар «с нуля в IT» – это практикум для тех, кто уже использует ИИ и хочет выйти на следующий уровень.
🎁 Бонус: гайд по установке и настройке OpenClaw на вашем ПК.
Бесплатный практикум – по ссылке.
Размышления на тему задач стоящих перед ИТ‑специалистами и опрос
Это статья написана дипломированным инженером‑конструктором (по первому образованию), разработчиком систем автоматизированного проектирования (САПР) и (по известным причинам) вынужденно ставшим сертифицированным специалистом по системам офисного документооборота.
С развитием интернета и всеобщей массовой коммуникации сфера интересов разработчиков сместилась в область запросов потребителей развлекательного контента. И это весьма прискорбно. А тут ещё ИИ (Ai) подоспел, и все окончательно забыли о действительно полезных задачах автоматизации инженерного проектирования. Справедливости ради стоит отметить, что есть ещё задачи бизнеса, тоже весьма популярные в определённых кругах. А также математическое моделирование, инженерная графика, различные узкоспециализированные приложения.
https://habr.com/ru/articles/1030336/
Алгоритмы и Структуры данных
Q-LLL: как мы сделали LLL-редукцию наблюдаемой, управляемой и проверяемой
LLL-редукция давно стала одним из базовых инструментов вычислительной математики, теории чисел, криптографии и анализа решёток. Обычно LLL воспринимается как “чёрный ящик”: на вход подаётся целочисленный базис, внутри выполняется последовательная редукция, на выходе получается новый базис, который удовлетворяет классическим условиям LLL.
Но в практических задачах всё чаще возникает другая постановка. Нам нужен не просто один запуск LLL, а управляемый процесс исследования целого семейства решёток: с разными масштабами, embedding-параметрами, весами, подвыборками строк и гипотезами о скрытой структуре. В такой ситуации важно не только редуцировать базис, но и понимать:
https://habr.com/ru/articles/1031386/
Алгоритмы и Структуры данных
Multi-region quorum: «все регионы согласны» против «N из M»
В моём uptime-мониторинге Valpero сейчас семь production-мониторов и десять probe-регионов. Когда я только начал, false-positive алёрты приходили часто — типичная история с single-region проверкой. Поставил quorum-логику. Тут оказалось, что вариантов quorum’а несколько, и они дают разное поведение в пограничных случаях.
Ниже расскажу про два главных подхода — K-of-N (как в Pingdom, BetterStack) и all-must-agree (как у меня) — с реальным кодом, который у меня сейчас в проде.
В конце разберу edge-кейсы которые ломают каждый из подходов, и почему я остановился на all-must-agree с consecutive-failure threshold.
https://habr.com/ru/articles/1035600/
Алгоритмы и Структуры данных
Отечественный суперкартридж для старушки Mega Drive и его киллер-фичи
На создание очередной статьи раз в восемь лет меня сподвигла данная публикация, где автор о сложном и хайповом рассказал настолько доступно и информативно, что я подумал, почему бы и нет, я тоже хочу написать о чем-то интересном!
Ко мне в руки попал профессиональный флеш-картридж InviteDRIVE v6 MAX с поддержкой игр Sega Genesis / Mega Drive / Sega CD / Master System / 32x, разработанный широко известным в узких кругах ретрогеймеров Масяней из Новосибирска. Главной, но не уникальной особенностью картриджа является возможность играть во всю библиотеку Sega CD игр различных регионов на оригинальной 16-ти битной консоли фирмы Сега не имея самого дорогостоящего и капризного CD аддона.
https://habr.com/ru/articles/1035910/
Алгоритмы и Структуры данных
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
