ru
Feedback
Всё про Алгоритмы и Структуры данных

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

Открыть в Telegram

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

Больше
7 757
Подписчики
-224 часа
-57 дней
-2830 день
Архив постов
Вороной, Манхэттен, рандом Это история про то, как не довести дело до конца, но получить уйму опыта, и вообще ни разу не обломаться. Итак, у нас был один программист, один художник, абсолютное непонимание рабочего процесса, незнакомый нам игровой движок и желание что-то намутить. Если вам интересно, как в одном месте сошлись карта Вороного, частный случай расстояния Минковского, преобразования над полигонами, процедурная генерация и шумы — и все это в красивой стилизованной обертке, то вам под кат. https://habr.com/ru/articles/794572/ Алгоритмы и Структуры данных

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность. При изучении алгоритмов расслабьтесь и получайте удовольствие, ведь есть ненулевая вероятность, что вам понадобятся полученные знания вне собеса. Кто знает, может однажды умение быстро обходить двоичное дерево поможет спасти вам мир (как и знание регулярок): https://habr.com/ru/articles/794556/ Алгоритмы и Структуры данных

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

Как я написал алгоритм сортировки, который быстрее std::sort Это — продолжение моей предыдущей публикации (вот — первая, вторая и третья части перевода), посвящённой тому, как я создал алгоритм сортировки, который быстрее std::sort. Эта статья — мой шанс углубиться в те детали, о которых меня спрашивали в комментариях. Я собираюсь разъяснить здесь некоторые вещи, которые оказались непонятными аудитории, и поговорить о будущем моего алгоритма, о доработках, в которых он нуждается. https://habr.com/ru/companies/wunderfund/articles/599249/ Алгоритмы и Структуры данных

Компилятор за выходные: избавляемся от переменных Насколько сложные программы вы сможете написать на питоне, не пользуясь в принципе переменными (а также агрументами функций), за исключением пары глобальных массивов? Правильный ответ: да любой сложнсти. Если что-то можно сделать на ассемблере, то уж на питоне и подавно! Правда, пусть лучше вместо нас код генерирует машина :) Продолжаем разговор о минималистичном компиляторе, который вполне реально написать за выходные. Задачей стоит транслировать код из придуманного мной языка в x86 ассемблер. Мой компилятор состоит из 611 строк кода, при этом не имеет ни единой зависимости: ssloy@khronos:~/tinycompiler$ cat *.py|wc -l 611 Несмотря на то, что целевым языком является ассемблер, я не мазохист, и пришёл к этому постепенно. Сначала я транслировал код в питон, и постепенно урезал функционал целевого языка, пока не остался голый ассемблер. Тема сегодняшнего разговора: генерация кода на питоне без использования переменных. https://habr.com/ru/articles/793524/ Алгоритмы и Структуры данных

Схематичное отображение машин на маршруте В чём заключалась задача? Есть определённая группа машин, которая ездит всю смену по одному маршруту. Таких маршрутов может быть довольно много. Диспетчер должен видеть, на каком участке маршрута находится каждая из машин. Также нужно понимать, сколько машин находится на конечных остановках и сколько всего машин на маршруте. В течение дня часть автомобилей может уходить с линии, а после - возвращаться. Например, водитель ушёл на обед, его машина сломалась или попала в ДТП. Также водителям и диспетчерам необходимо рассчитывать и поддерживать интервал движения, об этом также будет рассказано в статье. https://habr.com/ru/companies/reksoft/articles/647405/ Алгоритмы и Структуры данных

Как создавать уникальные лабиринты Лабиринты на сегодняшний день всё ещё важны в развлекательной сфере. И это не только зеркальный лабиринт в парках аттракционов, но и видеоигры, ведь если посмотреть на карты и уровни в различных играх, то это всё один большой и сложный лабиринт, построенный по некоторым правилам. А что если мы хотим тоже сделать свой интересный и уникальный лабиринт? Очевидно, нужно создать эти самые правила. Далее я постараюсь кратко, понятно и без лишних непонятных букв рассказать о разработке своего подхода к генерации различного рода лабиринтов. Объясню, почему я этим занялся, с чего начинал и как всё развилось до вполне приличного алгоритма на основе подхода и почему каждый из вас может взять этот подход за основу и адаптировать его под свои желания. https://habr.com/ru/companies/ruvds/articles/647159/ Алгоритмы и Структуры данных

Компилятор за выходные: таблицы символов Продолжаем наш вечерний концерт по заявкам радиослушателей. Тема сегодняшнего разговора - таблицы символов https://habr.com/ru/articles/789310/ Алгоритмы и Структуры данных

Распознаем фигуры по массиву точек: эллипсы и не выпуклые фигуры Данная статья является продолжением предыдущей статьи о распознавании простых многоугольников по нарисованной линии. В данной части будут рассмотрены алгоритмы распознавания эллипсов и алгоритм распознавания невыпуклых многоугольников. https://habr.com/ru/articles/599537/ Алгоритмы и Структуры данных

Хотя бы тут будет шанс... получить Айфон Куб маркетинга запускает розыгрыш призов — три победителя получат: 1.Apple IPhone 15
Хотя бы тут будет шанс... получить Айфон Куб маркетинга запускает розыгрыш призов — три победителя получат: 1.Apple IPhone 15 Pro 2.Apple Airpods Max 3.Apple Watch Series 9. Для участия необходимо быть подписанным на @cubemark, а после нажать на кнопку "Участвовать" Трое победителей станут известны 21 февраля, в 20:00, их выберет случайным образом бот Рандомайзер. Приз отправим в любую точку, где доступна доставка СДЭК. ⚠️ Если кнопка подвисла — вас все равно зарегистрирует, просто выполните условия и нажмите «Участвовать».

Зачем учить алгоритмы? Когда разработчик учится решать алгоритмические задачи? Чаще всего, это происходит или в самом начале пути, или при подготовке к собеседованию. В начале пути задача на выбор оптимальной структуры данных, разработку и оценку сложности алгоритма помогает изменить мыслительные привычки - перейти от выражения мыслей на естественном языке с массой неточностей к однозначному изложению на языке программирования. Алгоритмическая задача позволяет не перегружать разработчика деталями какой-то предметной области и сосредоточиться на обработке данных. Идеальный тренажер мышления без привязки к бизнес смыслам с их неточностями и противоречиями. Насчет подготовки к собеседованиям популярны 2 позиции. Одни говорят, что после собеседования алгоритмы почти никогда не применяются годами, а человек, легко решающий алгоритмические задачи, ничем не лучше других в решении бизнес задач. Другие считают, что алгоритмы это база, без которой у разработчика нет навыков решения сложных проблем. А секцию алгоритмов при найме считают идеальной проверкой всех ключевых умений программиста. В этой статье хочу поделиться своим взглядом на вопрос, зачем стоит или не стоит прокачивать знание алгоритмов. Попробую взвешенно посмотреть на алгоритмическую задачу, как способ проверки нужных в практической работе навыков. https://habr.com/ru/articles/793908/ Алгоритмы и Структуры данных

Реализация слоев в NN (часть 1) В первой статье речь пойдет о реализации модуля Sequential и слоёв Dense и Input через библиотеку Numpy для многослойной NN. Данная статья нацелена на практическую реализацию слоев с минимумом теории, и предполагается что читатель знаком с базовой теорией обучения нейронных сетей. https://habr.com/ru/articles/793584/ Алгоритмы и Структуры данных

Закон парадокса в логике и математике Закон парадокса, по-видимому, можно считать недавно сформулированным и доказанным законом алгебры множеств. В данной статье приведены его формулировка и обоснование, а также показаны некоторые области его применения, в частности, выявление с его помощью одного из часто используемых приемов манипуляции сознанием. В заключительной части статьи приводится объяснение на его основе парадокса Рассела. https://habr.com/ru/articles/793094/ Алгоритмы и Структуры данных

Минималистическая модель живой клетки в браузере Вы когда-нибудь задумывались, как действуют клетки — элементарные единицы живой материи? Я – программист, но одновременно увлекаюсь клеточной биологией. Поэтому я решил смоделировать работу простейшей клетки на TypeScript. Вообще, клетки невероятно сложны; по оценкам учёных, человеческая клетка в среднем содержит 100 триллионов атомов. По-прежнему очень мало известно о том, как все эти биомолекулы взаимодействуют в клетке, поэтому в точности смоделировать работу клетки невозможно. Размышляя на эту тему, я нашёл статью Fundamental behaviors emerge from simulations of a living minimal cell (Фундаментальные виды поведения возникают на основе моделирования простейшей живой клетки). Опираясь на кинетические параметры, авторы статьи создали модель взаимодействия молекул и химических реакций между ними в простейшей известной клетке. Затем эта симуляция запускается, и на её основе можно наблюдать такие процессы как репликация ДНК, метаболизм и синтез белков. https://habr.com/ru/articles/793274/ Алгоритмы и Структуры данных

Как языковая модель предсказывает следующий токен (часть 1) Если вы знакомы с трансформерами и хотите сразу узнать вывод, то он таков: каждый блок трансформера (содержащий слой многоголового внимания и сеть с прямой связью) изучает веса, связывающие конкретный промт с классом строк, найденных в обучающем корпусе. Распределение токенов, соответствующее этим строкам в обучающем корпусе, и есть приблизительно то, что блок выводит как прогноз для следующего токена. Каждый блок может ассоциировать один и тот же промт со своим классом строк обучающего корпуса, что приводит к другому распределению следующих токенов, а значит, и к другим прогнозам. Окончательный результат работы трансформера — это линейное сочетание прогнозов каждого блока. https://habr.com/ru/articles/792020/ Алгоритмы и Структуры данных

Детекция объектов. YOLO. Часть 2 Когда пытаешься разобраться в работе YOLO по статьям в интернете, постоянно натыкаешься на примерно такое объяснение: «Алгоритм делит изображение сеткой SxS, где каждому элементу этой сетки соответствует N ббоксов с координатами, предсказаниями классов и тд...». Но лично мне становилось только непонятнее от такого высокоуровнего описания.. Ведь в исследованиях часто всё происходит примерно так: перебирают гипотезы, пока не получат приемлемый результат, а потом уже придумывают красивое описание. Поэтому для ясности хочется рассказать, как вообще приходили к идеям, которые ложились в основу YOLOv1 и последующих версий. Сначала поговорим про Feature Map, чтобы потом стало понятно откуда взялась эта непонятная сетка SxS)) Итак, давайте представим, что у нас есть маленькое трехканальное (RGB) изображение 10×10 пикселей. Мы прогоняем его через две свёртки: с ядром 5×5 и ядром 3×3. Соответствующий код на Torch выглядит так: https://habr.com/ru/articles/792926/ Алгоритмы и Структуры данных

Станьте Python-разработчиком за 0₽ Зарплата начинающего Python разработчика от 100 000₽, а стоимость обучения на профессию в
Станьте Python-разработчиком за 0₽ Зарплата начинающего Python разработчика от 100 000₽, а стоимость обучения на профессию в онлайн-школах от 120 000 до 300 000 рублей. Получите основы профессии и ключевые навыки за 3 недели практики. ⚠️ Переходите по ссылке и забирайте курс по Python — только до 11 февраля: https://go.2038.pro/8d12bd42505a6330?erid=LdtCK7b7u&m=1

Звёзды-родственники: зачем и как мы их ищем, данные + код (Python) С древних времён человек стремится найти ответы на вопросы о своем существовании, обращая взор к небу. Исследование звёзд, как ключа к расшифровке тайн космоса, занимает центральное место в нашем стремлении к пониманию происхождения и эволюции вселенной. В настоящее время, благодаря передовым обсерваториям, космическим телескопам и миссиям, включающим (но не ограничивающимся) Hubble, Kepler, Gaia, возможности для изучения звезд и их скоплений вышли на новый уровень. Технологии позволяют не только проникнуть в глубины космоса, но и наблюдать реальность с невиданной ранее детализацией. Благодаря им и обнаруживаются "звёзды-родственники" (т.е. образовавшиеся из одного облака). Эти объекты обладают схожими характеристиками, включая химический состав, возраст и скорость движения. https://habr.com/ru/articles/792854/ Алгоритмы и Структуры данных

Тестируем многоядерный процессор методом Кнута и Python’а Перед тем, как мы с вами начнем писать приложения, я вам изложу необходимую теоретическую базу максимально доступным языком для того, чтобы в процессе написания вы понимали, что мы делаем. В статье речь идет о центральном процессоре компьютера – CPU. https://habr.com/ru/articles/792832/ Алгоритмы и Структуры данных

Skillbox дарит 6 месяцев бесплатного обучения интернет-профессиям с гарантией трудоустройства. Список профессий участвующих в
Skillbox дарит 6 месяцев бесплатного обучения интернет-профессиям с гарантией трудоустройства. Список профессий участвующих в акции: Интернет-маркетолог (зп 120 000₽) SMM-маркетолог (зп 150 000₽) Веб-дизайнер (зп 140 000₽) Графический дизайнер (зп 80 000₽) Data Engineer (зп 190 000₽) Data Analyst (зп 285 000₽) Java-разработчик (зп 150 000₽) Разработчик игр на Unity (зп 120 000₽) Тестировщик ПО (зп 165 000₽) Приобретение обучения гарантирует трудоустройство, или Skillbox вернет деньги! ⚠️Акция действительна только по ссылкам в посте. Срок окончания акции 15 февраля 2024 года.