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

Ссылка: @Portal_v_IT

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

Канал на бирже: https://telega.in/c/structuredata
Download Telegram
Demoded: разбор олдскульных демо-эффектов на примере

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

Если сайзкодинг - это про размер, и оптимизация скорости исполняемого кода там отходит на второй план, то в данной статье речь пойдет как раз про скорость, ухищрения, трюки и просто наглый обман незадачливого зрителя с одной лишь целью: показать на древнем железе красочные и динамичные видеоэффекты под музыку и с невсратым FPS. Ну и, конечно, дизайн, олдскульный вайб, фанк, грув - всё это тоже важные составляющие, но говорить мы будем в основном про кодерскую эстетику (30-летней давности).

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

Алгоритмы и Структуры данных
2
Что такое модельно-ориентированное проектирование и как оно поможет сократить затраты на разработку сложных систем

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

https://habr.com/ru/companies/etmc_exponenta/articles/649035/

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

С самых первых дней изучения биологии или естествознания нам рассказывают о взаимодействии видов, пищевых цепочках и иерархий. Классический пример: трава, кролики и волки. Если волков исключить из уравнения, то кролики будут размножаться и съедят всю траву и будут потом голодные; если исключить траву, то кролики вымрут и волки будут голодные; если исключить кроликов, то трава разрастется, а волки будут голодными. Этот крайне утрированный пример показывает тесную взаимосвязь всего живого, связь, которую порой крайне сложно описать четким математическим языком. Несмотря на устоявшуюся структурированность, которую мы приписываем межвидовому взаимодействию, оно куда ближе к хаосу, чем к порядку. Группа ученых из Мичиганского университета (Анн-Арбор, Мичиган, США) провели любопытное исследование трех враждующих видов муравьев и хищных мух, которое показало всю сложность попыток какого-либо предсказания динамики их взаимодействия. Что именно удалось установить ученым, какие методы были использованы, и как данное исследование связано с сельским хозяйством? Ответы на эти вопросы мы найдем в докладе ученых.

https://habr.com/ru/companies/ua-hosting/articles/939700/

Алгоритмы и Структуры данных
Как создатель ZIP, Фил Катц победил в войне форматов, но проиграл в собственной

История Фила Катца — это классическая IT-драма: блестящий взлёт, жёсткая конкуренция, суды, огромный успех и, в конечном итоге, личная трагедия.

Действующие лица на старте
Том Хендерсон, деловой и целеустремленный, предприниматель создал ARC - очень популярная программа-архиватор для эпохи BBS (доинтернетных досок объявлений). Она умела сжимать и собирать файлы в один архив. Распространялась как условно-бесплатная (shareware). Её формат был стандартом де-факто.

Фил Катц - молодой, невероятно талантливый, но замкнутый и склонный к уединению программист. Он жил с матерью и был одержим оптимизацией кода. Фил Катц активно пользовался ARC. Но как настоящий хакер, он видел его недостатки: программа была не самой быстрой и эффективной.

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

Алгоритмы и Структуры данных
Программист embedded лезет в FPGA

Любой программист микроконтроллеров, Imho, рано или поздно (сейчас, скорее, рано) от одного из коллег или из статьи в интернете слышит загадочное ПЛИС или FPGA, CPLD, ПВМ — что-то такое. Если честно, то я услышал вот это загадочное, занырнул чуть-чуть, и теперь думаю, что мой опыт пригодится кому-то ещё. Если совсем честно, то статья ещё планируется как небольшая (всего в трёх частях) заметка для себя. Я когда погружался, делал пометки в текстовом файле, здесь получится их хорошо отредактированная версия.

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

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

Алгоритмы и Структуры данных
Топологический аудит ECDSA: когда геометрия защищает ваши ключи

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

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

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

Это первая статья из планируемой серии про succinct data structures - это класс очень компактных структур данных. Канонический пример такой структуры - это представление дерева в виде правильной скобочной последовательности, дерево изnвершин таким образом представляется с помощью2nбит в то время как типичная динамическая реализация требовала бы как два указателя по 64-бит на каждый узел (разумеется можно немного сократить простыми оптимизациями, но даже близко 2 бита не получить). Фундамент подобных структур - это rank-select словарь, представляющий собой битовый вектор и дополнительную структуру для выполнению двух операций ранг и селект. В указанном примере с деревом с помощью ранга и селекта можно сделать базовую навигацию: найти номера потомков/родителей, узнать размер поддерева. В статье расскажу как делать эти операции быстро используя при этом всего 3,6% дополнительной памяти.

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

Алгоритмы и Структуры данных
1
Интерактивные истории на стероидах: как добавить случайность и судьбу в DSL

Язык для интерактивных историй — это весело до тех пор, пока сюжет не превращается в механическую цепочку заранее известных развилок. Чтобы истории жили дольше одного прохождения, им нужна случайность. В этой статье я расскажу, как можно встроить элемент «судьбы» в сам DSL: добавить рандом, вероятности, броски кубиков и даже скрытые триггеры. Всё это — на Python, с реальными примерами кода, а не только с теорией.

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

Алгоритмы и Структуры данных
1
Почему ваш бизнес хромает: история одного IT-ортопеда

Меня зовут Сергей Колесников. И если оглянуться на мои 32 года в профессии, то можно сказать, что я был кем-то вроде ортопеда для бизнеса. Нет, не лечил людей, но "вправлял" вывихнутые процессы и подбирал "протезы" для хромающих компаний. Но самые важные вещи о своей профессии я понял, как ни странно, не из мира технологий, а из мира медицины.

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

Алгоритмы и Структуры данных
Что такое «Action Recognition»?

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

https://habr.com/ru/companies/recognitor/articles/647343/

Алгоритмы и Структуры данных
Искусственный интеллект? Или не совсем искусcтвенный?

Нас с ЭВМ обьединяет то, что мы реагируем на события. Человек и животное реагирует на раздражители, ЭВМ - на сигналы от периферии. В ЭВМ или МК эффект человекоподобного искусственного интеллекта даёт набор обработчиков различных ситуаций (прерываний, ошибок, исключений) - этаких машинных рефлеков. Но, как можно заметить, контекст выстраивается в машинном и человеческом интеллекте разными способами. Человек и ЭВМ сохраняют контекст по разному. В ЭВМ пришёл сигнал от периферии - выполнение предыдущей программы прерывается. Обработчик завершается - ЭВМ возвращается в прерванную программу. Человек контекст не сохраняет. Если человек возвращается к какой то прерванной задаче, то это потому что есть стойкий раздражитель. Вы читаете книгу, вам кто то звонит. А по завершении разговора, вы возвращаетесь к книге, если вы никуда не ушли, ведь книга лежит на том же месте.

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

Алгоритмы и Структуры данных
1
Парсинг Pubmed на противораковые натуральные вещества

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

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

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

Новый алгоритм может снизить разобщенность пользователей соцсетей

Социальные сети создавались для глобального общения, но на практике часто усиливают разобщённость. Вместо объединения людей они формируют «информационные пузыри» — изолированные сообщества, где пользователи взаимодействуют преимущественно с единомышленниками. Контент с альтернативными взглядами либо скрывается алгоритмами, либо воспринимается как враждебный. Эта онлайн-сегрегация ведёт к социальному разделению, уверенности в абсолютной правоте своей позиции и росту агрессии к «чужим».

Учёные из МФТИ, ИПУ РАН и ТГУ предложили математическое решение проблемы, изменив алгоритмы формирования социальных связей. Новый подход снижает сегрегацию пользователей с помощью анализа структуры сетей.

https://habr.com/ru/companies/sberbank/articles/940616/

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

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

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

https://habr.com/ru/companies/ruvds/articles/647159/

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

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

Выпущено множество книг-рекомендаций про то, как писать "хороший" программный код: "Чистый код", "Совершенный код", "Программист-прагматик", "Чистая архитектура" и др. Такого рода литература задает некоторый стандарт качества и очертания "идеала".

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

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

Алгоритмы и Структуры данных
Статья 5: Алгоритмы – реализация и модель ошибок

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

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

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

Алгоритмы и Структуры данных
Генерация синтетических данных для LLM. Часть 3: случайные матрицы

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

https://habr.com/ru/companies/sberbank/articles/941220/

Алгоритмы и Структуры данных
Flat-контейнеры в C++

Привет, Хабр! Еще в C++23 появились «плоские» ассоциативные контейнеры: std::flat_set, std::flat_map и их многоключевые аналоги. Проще говоря, это полные аналоги обычных std::set и std::map, но реализованные иначе – через упорядоченный последовательный контейнер (по умолчанию std::vector). Зачем вообще понадобились эти штуки? Официальная причина – экономия памяти и выигрыш в производительности при чтении данных.

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

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

В данной работе представлена новая парадигма анализа безопасности алгоритма цифровой подписи на эллиптических кривых (ECDSA) через призму алгебраической топологии. Мы формализуем пространство параметров ECDSA как топологическое пространство в форме тора и вводим топологические инварианты (числа Бетти, эйлерова характеристика) как количественные метрики безопасности. Наш ключевой вклад включает закон диагональной периодичности, метод динамических улиток и гиперболическую кластеризацию, которые позволяют значительно снизить вычислительную сложность анализа с O(m⁴) до O(m log m). Мы доказываем, что безопасная реализация ECDSA должна соответствовать топологическим критериям: β₀ = 1, β₁ = 2, β₂ = 1. Предложенные методы обеспечивают систематический подход к обнаружению subtle уязвимостей, которые могут быть пропущены традиционными статистическими тестами. Интеграция с Project Wycheproof и рекомендации для криптографических библиотек завершают нашу работу, делая ее практически применимой для индустрии.

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

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

Недавно на Хабре появилась потрясающая статья "Свет считает быстрее: как работают фотонные вычисления и из какого «железа» они собраны" от автора vsradkevich, которая стала ключевым вдохновением для нашего проекта. Эта статья подробно раскрывает принципы фотонных вычислений и дает четкие рекомендации по созданию гибридных систем: "Линейные операции — в оптике, нелинейности и память — в CMOS".

Вдохновившись идеями vsradkevich, мы разработали Гибридный Квантовый Эмулятор с Топологическим Сжатием (HQE) — программное решение, реализующее аналогию фотонного тракта в эмуляции квантовых вычислений. Как и рекомендовал автор оригинальной статьи, мы разделили ответственность: "оптика — линейная часть; нелинейности и нормализации — в электронике".

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

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