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

Ссылка: @Portal_v_IT

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

Канал на бирже: https://telega.in/c/structuredata
Download Telegram
Моцарт ex Machina: Кто научил ИИ сочинять музыку

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

Но кто первым познакомил компьютер с моцартовским ремеслом? И при чем здесь “Уральские напевы”?

Брамс (и бадабумс) из коробки
Механическая музыка, наверно, стара как мир. Известно, что автоматизацию “прикрутили” к звуку еще в 250 году до н.э. Ктесибий из Александрии сконструировал часы-клепсидры, в которых меняющийся уровень воды заставлял звенеть маленький колокол. В других вариациях там была гудящая труба, своеобразная вувузела античности.

https://habr.com/ru/companies/studyai/articles/1023710/

Алгоритмы и Структуры данных
«Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки

В промышленной инженерии и логистике существует вечный спор: искать ли единственный «идеальный» вариант укладки часами или выстроить систему, которая выдает оптимальный результат за миллисекунды.

Недавно мне представилась возможность проверить это на практике. Коллега-логист (назовем его Сергей) предложил сравнить мой алгоритм Skewer-API с его собственной разработкой на реальном кейсе: 398 разнородных SKU, которые нужно распределить по контейнерам с минимальными затратами.

В прошлой статье я рассказывал о запуске веб-сервиса https://packing.skewer-api.ru/, который предназначен для быстрой упаковки грузов в контейнеры и фуры. На тот момент система умела работать в двух режимах: «по объему» (приоритет крупным объектам) и «по списку» (First In — First Packed).

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

Алгоритмы и Структуры данных
1
Автономность как точка невозврата: кто будет субъектом в цифровом будущем

Мы привыкли считать, что цифровая зрелость - это скорость, стабильность и автономность. Чем меньше человек вмешивается в работу системы, тем лучше она устроена. Но что, если за этим технологическим прогрессом скрывается менее очевидный процесс - постепенное вытеснение человека из ядра мышления?

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

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

Алгоритмы и Структуры данных
Фазовая синхронизация в системе FMComms5 от Analog Devices и оценка угла прихода сигнала

В этой статье дана инструкция для выполнения фазовой синхронизации в FMComms5 от Analog Devices и реализации метода пеленгации, использующего эту функцию. Оценочная плата FMComms5 обеспечивает высокую точность фазовой синхронизации. В этой статье рассказывается, как выровнять фазы двух приемопередатчиков AD9361 с помощью специальной программной библиотеки libad9361, созданной на основе инфраструктуры ввода-вывода libiio. Фазовое выравнивание необходимо для многих радиолокационных систем, таких как пеленгаторы и когерентные системы MIMO.

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

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

В динамическом компиляторе RyuJIT реализован алгоритм линейной схемы распределения регистров (LSRA), в соответствии с которым регистры процессора присваиваются сгенерированному коду. При выборе регистров алгоритм LSRA применяет разнообразные эвристики (если быть точным, их 17), выбирая из всех доступных регистров тот, который лучше всего подходит в настоящий момент. Все регистры можно разделить на две категории. Либо регистр не содержит значения переменной, поэтому может быть выделен для очередной переменной, либо он уже содержит значение переменной и, следовательно, он занят. Если в процессе присваивания регистров выбран тот, который занят, то значение, которое в нём сейчас содержится, приходится предварительно сохранить в памяти, а потом уже присвоить туда, куда нужно. Такая операция называется «выгрузкой переменной». В алгоритме LSRA компилятора RyuJIT есть (14 видов) эвристики, в соответствии с которыми сначала выбирается один из свободных регистров. Если свободных регистров не окажется, то есть ещё 4 эвристики, согласно которым выбирается один из занятых регистров. Занятый регистр выбирается в зависимости от того, содержимое какого регистра будет дешевле выгрузить.

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

Алгоритмы и Структуры данных
Создание анонимного чата в Telegram: бот с MiniApp интерфейсом

Мы привыкли считать, что цифровая зрелость - это скорость, стабильность и автономность. Чем меньше человек вмешивается в работу системы, тем лучше она устроена. Но что, если за этим технологическим прогрессом скрывается менее очевидный процесс - постепенное вытеснение человека из ядра мышления?

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

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

Алгоритмы и Структуры данных
Гамма-флип: Технический разбор перехода от диапазона к тренду и механика алгоритмического хеджирования

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

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

Чтобы во всем этом разобраться и научиться предсказывать смену рыночного режима, алгоритмические фонды и квантовые аналитики используют один ключевой сигнал. Он называется «Гамма-флип» (Gamma Flip).

В этой статье мы проведем детальный разбор архитектуры Гамма-флипа.

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

Алгоритмы и Структуры данных
Управление фазой аппаратного PWM сигнала на STM32 (или таймер на ошейнике)

Как известно на микроконтроллерах STM32 можно генерировать PWM сигналы. Это всегда применяют для регулирования яркости свечения светодиодов, управления температурой нагревателей, управления крутящим моментом на моторах. При этом легко регулировать частоту, заполнение и инвертировать фазу, меняя полярность. Однако как непрерывно регулировать фазу на первый взгляд даже не ясно. Фаза сигнала это то насколько он смещен вдоль оси Х. В карте регистров аппаратных таймеров STM32 просто нет регистра, который отвечает за фазу сигнала.

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

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

Алгоритмы и Структуры данных
👍2
Schnorr/MuSig2 Nonce-Forensics:

Эта статья не про «магический взлом Bitcoin» и не про сенсационную кнопку восстановления приватного ключа. Она про другое: как строго и математически корректно перевести подписи Schnorr (BIP340) и MuSig2 (BIP327) из формата «пара чисел (r, s)» в формат набора affine-ограничений, семейства скрытых нонсов и измеримых структурных функционалов.

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

Алгоритмы и Структуры данных
Книга: «Паттерны Coding Interview. Подготовка к сложному техническому интервью»

Хотите успешно пройти Coding Interview в ведущую IT-компанию? Эта книга меняет правила игры в подготовке к кодинг-интервью. Алекс Сюй предлагает структурированный подход к распространенным паттернам, разбирает сложные концепции и делает реальные задачи намного доступнее.

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

Перед вами 464 страницы проверенного на практике знания, которое тысячи разработчиков уже использовали для карьерного взлета!

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

Алгоритмы и Структуры данных
Slow Feature Analysis. Разбор метода и реализация на Python с нуля

В этой статье я хочу рассказать про метод обучения без учителя - “Анализ медленных признаков” (Slow Feature Analysis), далее SFA. Метод был разработан в 2002 году Лоренцом Вискоттом и Терренсом Сейновски.

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

SFA - метод изучения инвариантных или медленно изменяющихся признаков на основе векторного входного сигнала. Эту задачу можно свести к минимизации скорости изменения проекций. В статье будет рассмотрен многомерный случай, но принцип легко обобщается на одномерный через вложение Такенса.

https://habr.com/ru/companies/okama/articles/1025754/

Алгоритмы и Структуры данных
Почему ваш софт тормозит: принципы Mechanical Sympathy для разработчиков

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

https://habr.com/ru/companies/otus/articles/1025964/

Алгоритмы и Структуры данных
«Я ща его ударю». Полтора года собирала жалобы на нейросети от нытиков и классифицировала

Дело было так. Я года полтора-два сижу в профильных телеграм-чатах про всякие эйяй – там разрабы, копирайтеры, редакторы, вайбкодеры и вайбкуколдеры (это кто смотрит, как другие вайбкодят, а у самого руки не доходят). Народ там не на трибуне выступает, скорее говорит, что на сердце, так что читать чистый кайф. Особенно, как они ссорятся с нейронками и потом в чат на них жалуются. И одни и те же жалобы у самых разных людей на разные модели.

У меня даже был блокнот с цитатами из этих чатов, и кажется, настало время их систематизировать. Ну вот села и пошла разбираться – что за этим стоит технически, почему так раз за разом. Жалобнических кластеров получилось восемь. Если всю портянку читать лень, то внизу они все собраны в табличку.

Хотя давайте так. Сначала я покажу одну штуку, которая меня вообще удивила – она не про модели, а про нас. Потом уже по багам пойдём.

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

Алгоритмы и Структуры данных
Наука без экранов: как настольные STEM-игры закрывают когнитивный разрыв между теорией и практикой

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

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

Одним из таких инструментов являются настольные научные игры. Это мощный дополнительный слой, который закрывает пробел между правилом и практикой, между формулой и интуицией. Они не требуют пайки, батареек или подготовки реактивов, но за 30–40 минут создают в голове ребёнка чёткую ментальную модель явления.

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

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

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

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

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

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

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

Алгоритмы и Структуры данных
От криптоанализа к AI-forensics:

В прошлой статье я показывал, что подпись Schnorr / MuSig2 можно рассматривать не как «чёрный ящик», а как систему наблюдаемых affine-структур: через строгий BIP340 membership bridge, семейства скрытых нонсов, compression/connectivity-метрики и protocol-valid линеаризацию MuSig2 partial signatures Хабр. Это меняет саму оптику: вместо «верим протоколу на слово» мы начинаем разбирать его на проверяемые математические блоки.

Следующий шаг оказался неожиданным, но логичным.

Мы перенесли ту же самую методологию в AI.

Не в смысле «взяли LLM и начали её тюнинговать». А в смысле: взяли квантованную MLX-модель и стали исследовать её внутреннюю математику так же, как раньше исследовали подписи.

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

Алгоритмы и Структуры данных
Если вы уже пробовали ChatGPT, DeepSeek или Cursor – вы знаете проблему: они помогают, но большую часть работы всё равно делаете вы.

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

Что вы получите на эфире:

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

И главное – понятно объяснят, как из пользователя нейросетей перейти в того, кто использует ИИ на максимум.

🎁 Бонус: гайд по Claude Code + примеры внедрения

Бесплатный практикум – по ссылке.
Драматургия через математику: WFC + Entropy Bias

Как одна модификация формулы превращает генератор карт в дизайнера уровней

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Играли в Hades? Там дизайнер уровней не бросает кубики. Он точно знает, где игрок поймает дыхание после погони, где встретит соблазн свернуть с пути, где сундук стоит под прицелом элитника, а где — просто в углу за колонной. В простой случайной генерации таких решений нет: карты рождаются «равномерными» и драматургически мёртвыми. Сегодня хочется поговорить о том, как одной модификацией в формуле Wave Function Collapse вернуть в генератор жизнь. Разберём Entropy Bias, Entropy Cascade, Tile Probability Bias и семантические слои. Если вам интересна тема процедурной генерации и немножко математики — добро пожаловать под кат.

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

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

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

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

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

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

Алгоритмы и Структуры данных
Давайте объединим линейную и геометрическую алгебры. Часть 2. Матрица Якоби

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

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

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