uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

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

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

Kanalga Telegram’da o‘tish

Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников. Ссылка: @Portal_v_IT Сотрудничество: @oleginc Канал на бирже: https://telega.in/c/structuredata

Ko'proq ko'rsatish
7 609
Obunachilar
-424 soatlar
-147 kun
-4930 kun
Postlar arxiv
«Эволюция против муравьёв» сравниваем алгоритмы оптимизации Муравьиный алгоритм — один из общепризнанных в математической среде лидеров по нахождению решения для задачи коммивояжёра (поиска оптимального пути). С другой стороны, существуют другие, более гибкие методы, один из которых — эволюционный. Какой же алгоритм окажется лучше, если столкнуть их в задаче менее свойственной для муравьиного алгоритма — задаче о ранце. Задача о ранце или knapsack problem — одна из классических задач оптимизации, завязанная на необходимости найти оптимальный набор таких действий, которые позволят максимизировать одни параметры при соблюдении ограничения других. Сложно? Проще на примерах. https://habr.com/ru/articles/659741/ Алгоритмы и Структуры данных

Обратная сторона Луны: как мы создали чат-бота с «человеческим лицом» Меня зовут Александр Терехов, я работаю инженером группы классификации и диагностики (КиД) в самарском филиале «Инфосистемы Джет». Несколько лет назад я помогал девушке с дипломной работой, и мы создали чат-бота с психологическим уклоном — он тестировал типы личности и темпераменты. Тогда я настолько проникся этим опытом, что, когда начал создавать чат-бота для нужд технической поддержки, решил добавить в него немного психологии. Так появилась Луна — чат-бот, который помогает в работе инженерам «Инфосистемы Джет» и реагирует на эмоции. Мы с коллегами занимаемся техподдержкой крупного банка — обслуживаем АРМ. Для этого мы используем более двух сотен документов: шаблоны и инструкции, которые хранятся в базе знаний Confluence. Но мне всегда хотелось «человеческого присутствия» в поиске ответов на свои вопросы. Поэтому я и двое моих коллег решили создать чат-бота, который хранил бы в себе советы и подсказки и, если человек столкнулся с типовой проблемой, мог бы ему оперативно помочь. А ещё по задумке этот бот должен был отвечать в человеческой манере. https://habr.com/ru/companies/jetinfosystems/articles/659763/ Алгоритмы и Структуры данных

OCR за час? — Не думаю Одним прекрасным вечером коллега попросил подумать над алгоритмом поворота серийных номеров на металлических брусках — бруски овальные, серийные номера выбиты на их торцах, и ориентация надписи может быть произвольной. Предполагалось, что если повернуть брусок так, чтобы номер располагался горизонтально, это поможет распознаванию. Один из возможных вариантов поворота придумать несложно, об этом ниже. Но глобально задача предполагала именно распознавание. Ранее задачами OCR глубоко я не занимался, и мне стало интересно, на что способны имеющиеся коробочные решения. Казалось бы, они должны легко решить нашу задачу за час. О том, что было на самом деле, и пойдет речь в этой статье. https://habr.com/ru/companies/jetinfosystems/articles/660405/ Алгоритмы и Структуры данных

Фильтрация JSON: как мы проводили конкурс на самый быстрый алгоритм В статье расскажу, как мы организовали конкурс, который помог решить проблему исключения некоторых данных (в нашем API) в процессе отправки на фронт. В результате мы получили высокопроизводительный алгоритм фильтрации JSON с использованием векторных инструкций Intel® AVX2. https://habr.com/ru/companies/quadcode/articles/660229/ Алгоритмы и Структуры данных

Эффективное хранение графов: матрицы смежности Как известно, представление графа в памяти преимущественно осуществляется двумя способами: матрицей смежности и списком смежности. Остановимся на первом из них. https://habr.com/ru/articles/660567/ Алгоритмы и Структуры данных

Сортировка подсчётом beSort или как я изобретал велосипед? Теорию и технологию программирования я изучал в 90-е в провинциальном ВУЗе, но с весьма неплохим преподавателем, но даже от него я о таком способе сортировки не слышал. Не читал я о нём ни разу до, внимание!!! - 12 апреля 2022 года. Вот таким конём в вакууме я был. И самое интересное, что 12 апреля, как Юрий Гагарин, я "первым" для себя изобрёл этот тип сортировки. Занимался как всегда кодированием информации, сейчас балуюсь со словарями и их представлениями и мне понадобился простой (и быстрый) способ сортировки латинских букв - сиречь байтов. https://habr.com/ru/articles/660623/ Алгоритмы и Структуры данных

Реализуем алгоритм поиска в глубину В этом туториале описан алгоритм поиска в глубину (depth first search, DFS) с псевдокодом и примерами. Кроме того, расписаны способы реализации поиска в глубину в C, Java, Python и C++. “Поиск в глубину” или “обход в глубину” — это рекурсивный алгоритм по поиску всех вершин графа или дерева. Обход подразумевает под собой посещение всех вершин графа. https://habr.com/ru/companies/otus/articles/660725/ Алгоритмы и Структуры данных

Сортировка массива за O(N) на CUDA Как-то стояла задача отсортировать уникальный массив строк с использованием GPU с минимум кода и максимально возможной скоростью… В данном посте опишу основную идею ее решения. В качестве элементов массива сортировки в данном посте выступают числа. Случай с уникальными элементами небольшого массива В качестве платформы была выбрана CUDA по причинам, которые можно считать брэндовыми или индвидуальными. По факту, здесь много примеров именно на CUDA, и она на данный момент получила большее развитие в GPU-вычислениях, чем аналогичные платформы от ATI и OpenCL. Поиск в сети по алгоритмам сортировки на CUDA дал разные результаты. Вот наиболее интересный. Там есть рисунок https://habr.com/ru/articles/110177/ Алгоритмы и Структуры данных

Первые навыки геймдизайна за 4 дня — бесплатно Как придумать игровую механику, от которой невозможно оторваться? На бесплатно
Первые навыки геймдизайна за 4 дня — бесплатно Как придумать игровую механику, от которой невозможно оторваться? На бесплатном мини-курсе от Skillbox вы получите базовый навык геймдизайнера — научитесь разбирать игровые механики на части и понимать, как создаются вовлекающие сценарии и игровые системы. Это первый шаг, без которого не начинается ни одна серьёзная игра. Ваша любимая игра когда-то началась с геймдизайна. Попробуйте сделать свою. Пройдите мини-курс: https://go.avred.online/f80e20b80e18bb10?erid=2VfnxxcSezk&m=1 И получите в подарок 5 чек-листов для начинающих геймдизайнеров

Строковые алгоритмы на практике. Часть 2 — Алгоритм Бойера — Мура В прошлый раз мы с вами разобрали Алгоритм Кнута — Морриса — Пратта, сегодня мы разберем не менее интересный, а на мой личный взгляд, даже наиболее любопытный и изящный алгоритм поиска подстрок в тексте, который подкупает своей гениальной простотой. https://habr.com/ru/articles/660767/ Алгоритмы и Структуры данных

Лучшие алгоритмы 20 века по версии SIAM На рубеже веков SIAM опубликовали список из 10 алгоритмов, оказавших наибольшее влияние на науку и индустрию в 20 веке (по мнению редакции), четверть века спустя по меньшей половина из этого списка до сих пор используется повсеместно. В статье вспомним что это за алгоритмы и за что они получили такое признание. Обсудим и алгоритмы, которые в этот список не вошли, но вполне могли бы, о чем читатели хабра написали в комментариях к статье "10 лучших алгоритмов 20 века". В конце статьи опрос, пожалуйста, не проходите мимо и отметьте или напишите в комментариях, какие алгоритмы на ваш взгляд должны были оказаться в этом списке! https://habr.com/ru/articles/924828/ Алгоритмы и Структуры данных

Всё, что нужно знать о своих планах, случайностях и стохастическом программировании Все мы прекрасно знаем, что очень часто наши планы идут не по плану именно из-за случайностей. В такие моменты очень трудно обойтись без жаргонизмов, нецензурной брани и отборного трехэтажного. Но все же есть способ сделать наши планы более устойчивыми и состоятельными — это стохастическое программирование (далее SP — stochastic programming). https://habr.com/ru/articles/924770/ Алгоритмы и Структуры данных

Python — как первая гитара: просто, но затягивает Пока кто-то учит программирование по роликам на YouTube, вы можете за 5 дне
Python — как первая гитара: просто, но затягивает Пока кто-то учит программирование по роликам на YouTube, вы можете за 5 дней собрать Telegram-бота, веб-страницу и понять, ваше ли это вообще. Python — язык, с которого начинают аналитики, дата-сайентисты, разработчики и даже автоматизаторы. Он простой, но лежит в основе десятков современных профессий. И спрос на умеющих работать с ним специалистов только растёт. Мини-курс не грузит теорией. Это как пробная вечеринка в мире IT: сделали, почувствовали, захотели больше. Нажмите “начать” — и пусть Python станет вашим козырем.

Сравнение форматов PNG: от первой до третьей редакции Недавно опубликованная третья редакция спецификации Portable Network Graphics (PNG) 2025 года, разработанная World Wide Web Consortium (W3C), привлекла внимание к эволюции этого формата (W3C PNG Specification (Third Edition, 2025)). Ранее я, как и многие, использовал PNG, не задумываясь о его развитии и различных редакциях. Углубившись в изучение спецификаций PNG (1996, 2003, 2025), я решил подготовить данную статью, чтобы обобщить ключевые изменения и их значение для веб-дизайна, разработки игр и мультимедиа. Статья не претендует на исчерпывающий охват, но стремится предоставить полезный обзор для всех заинтересованных, включая начинающих. Приветствуются любые замечания и предложения по улучшению материала в комментариях к публикации. Весь код, приведённый ниже, выложил в репозиторий. Надеюсь, чтение будет полезным и увлекательным. https://habr.com/ru/companies/ntechlab/articles/924638/ Алгоритмы и Структуры данных

Процедурная генерация воксельных рогаликовых уровней Программа реализована на языке Python. Отрисовываться сгенерирированные уровни будут с помощью реализованного мной простейшего растрового движка, который реализован в модулях Rasterization2D и Rasterization3D. https://habr.com/ru/articles/924588/ Алгоритмы и Структуры данных

Винтик и Шпунтик, часть 3: лемма Бернсайда и генерация орбит Это третья часть моих наработок по решению задачи Винтика и Шпунтика в рамках челленджа @vvvphoenix. В прошлой части мы хорошо так свернули формулу включений-исключений для ускорения вычисления ответа. В этой части мы дополнительно ускорим вычисление формулы, разбив слагаемые формулы на классы эквивалентности, где в каждом классе слагаемые одинаковые и их надо будет вычислять только один раз. В этом нам поможет комбинаторная теория групп и её применение в задачах о раскрасках. По большей части эта статья содержит общую теорию решения подобных задач, так что эта информация может быть полезна и вне контекста задачи про Винтика и Шпунтика. https://habr.com/ru/articles/919712/ Алгоритмы и Структуры данных

Попробуйте себя в IT — без кода и вложений Без кода, без опыта — но с реальными навыками. Бесплатный мини-курс по тестировани
Попробуйте себя в IT — без кода и вложений Без кода, без опыта — но с реальными навыками. Бесплатный мини-курс по тестированию даст вам первое понимание профессии, практику и уверенность, подходит ли вам этот путь. 4 практических задания, полезные гайды, чат с экспертами и подарки. Всё — прямо в Telegram. Курс подойдёт людям с любым уровнем подготовки — старт в удобное время, уроки в боте. Курс поможет сделать первые шаги в направлении фриланса, где при желании можно искать подработку и получать дополнительный опыт. Регистрируйтесь и становитесь ITшником!

Жребий брошен: оптимальная генерация распределений и алгоритм Кнута-Яо Начнем наш сегодняшний путь с задачи Три айтишника — Маша, Вася и Петя — пошли в поход. После ужина они решают, кто будет мыть посуду. Петя дежурит один, а Маша с Васей — вдвоём. Значит, нужно выбрать Петю с вероятностью 1⁄3, а Машу с Васей — с вероятностью 2⁄3 Под рукой — только честная монетка. Как с её помощью устроить такой жребий? https://habr.com/ru/articles/924076/ Алгоритмы и Структуры данных

Загадка от Жака Фреско: как построить свой Rate Limiter и не утонуть в море компромиссов В DDoS-Guard мы ежедневно защищаем клиентские сервисы от самых разных атак. Одним из ключевых инструментов защиты становится Rate Limiter — система, которая ограничивает количество запросов от одного пользователя или группы пользователей. Мы столкнулись с необходимостью создания собственного облачного решения для rate limiting, которое бы соответствовало нашим требованиям по производительности, отказоустойчивости и гибкости. На первый взгляд задача кажется простой: «ограничь 100 запросов в минуту». Но когда речь идет о геораспределенной системе с высокими требованиями к задержкам, всё становится сложнее. Меня зовут Казбек, я тимлид команды разработки защиты на уровне L7. В этой статье я хочу рассказать о том, как мы реализовали Rate Limiter, какие архитектурные решения использовали, почему стандартные подходы не подошли, и как клиенты могут эффективно использовать этот инструмент. https://habr.com/ru/companies/ddosguard/articles/908662/ Алгоритмы и Структуры данных

Система команд. Основы динамической логики Эта идея — основа для понимания моей концепции интеллекта (саморазвивающейся программы). Если интересует создание саморазвивающейся программы, то эта идея не будет лишней. В начале описание идеи, потом описание реализации и описание некоторого дополнительного функционала. Рассказал идею о создании логики программы динамически. Причём, эта логика не представлена чисто в виде инструкций языка программирования. Она работает на основе конструкций, которые работают на основе инструкций ЯП — это абстракции над ЯП, что-то типа ЯП более высокого уровня, чем python. https://habr.com/ru/articles/924112/ Алгоритмы и Структуры данных