home.social

#динамическое_программирование — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #динамическое_программирование, aggregated by home.social.

  1. Рекурсивные типы. Часть 6. Пересвёртка на практике

    В этот раз мы разберём, как пересвёртка рекурсивных структур данных помогает в решении задач динамического программирования.

    habr.com/ru/articles/1029528/

    #рекурсия #пересвёртка #хиломорфизм #катаморфизм #динамическое_программирование #неподвижные_точки

  2. Не бойтесь динамического программирования

    Говорят, все боятся задач на динамическое программирование (aka ДП), потому что их решения выглядят как из задачника по матанализу. А мне оно всегда нравилось. Одна изящная формула — и задача решена. В этой статье разберем три задачи по динамическому программированию с LeetCode и попробуем каждый раз прийти к изящной формуле интуитивно. Также обсудим, по каким признакам можно понять, что задача — на динамическое программирование. Разбор трех задачек

    habr.com/ru/articles/1017372/

    #динамическое_программирование #leetcode #leetcode_easy #leetcode_medium #алгоритмическая_секция #собеседование_по_алгоритмам

  3. Не бойтесь динамического программирования

    Говорят, все боятся задач на динамическое программирование (aka ДП), потому что их решения выглядят как из задачника по матанализу. А мне оно всегда нравилось. Одна изящная формула — и задача решена. В этой статье разберем три задачи по динамическому программированию с LeetCode и попробуем каждый раз прийти к изящной формуле интуитивно. Также обсудим, по каким признакам можно понять, что задача — на динамическое программирование. Разбор трех задачек

    habr.com/ru/articles/1017372/

    #динамическое_программирование #leetcode #leetcode_easy #leetcode_medium #алгоритмическая_секция #собеседование_по_алгоритмам

  4. Не бойтесь динамического программирования

    Говорят, все боятся задач на динамическое программирование (aka ДП), потому что их решения выглядят как из задачника по матанализу. А мне оно всегда нравилось. Одна изящная формула — и задача решена. В этой статье разберем три задачи по динамическому программированию с LeetCode и попробуем каждый раз прийти к изящной формуле интуитивно. Также обсудим, по каким признакам можно понять, что задача — на динамическое программирование. Разбор трех задачек

    habr.com/ru/articles/1017372/

    #динамическое_программирование #leetcode #leetcode_easy #leetcode_medium #алгоритмическая_секция #собеседование_по_алгоритмам

  5. Не бойтесь динамического программирования

    Говорят, все боятся задач на динамическое программирование (aka ДП), потому что их решения выглядят как из задачника по матанализу. А мне оно всегда нравилось. Одна изящная формула — и задача решена. В этой статье разберем три задачи по динамическому программированию с LeetCode и попробуем каждый раз прийти к изящной формуле интуитивно. Также обсудим, по каким признакам можно понять, что задача — на динамическое программирование. Разбор трех задачек

    habr.com/ru/articles/1017372/

    #динамическое_программирование #leetcode #leetcode_easy #leetcode_medium #алгоритмическая_секция #собеседование_по_алгоритмам

  6. LIFO, 3D и Динамический Шампур: как упаковать 6000 объектов в фуру за 12 секунд

    В статье представлен подробный разбор разработки высокопроизводительного 3D-движка для оптимизации загрузки транспортных средств. Мы прошли путь от простого полочного алгоритма с КПД 58% до комплексной системы, обеспечивающей плотность упаковки до 90%. Автор делится уникальным опытом решения критических проблем: от устранения коллизий и соблюдения границ трюма до внедрения динамической балансировки веса и строгой очередности выгрузки по городам (LIFO). Особое внимание уделено оптимизации алгоритма Subset Sum, позволившего достичь скорости обработки в 14 000 объектов в секунду, и верификации логики через систему из 12 Unit-тестов. Внутри — чистый код на Python, математические выкладки и эффектная визуализация процесса упаковки

    habr.com/ru/articles/992564/

    #алгоритмы #программирование #математика #python #логистика #lifo #оптимизация #bin_packing #subset_sum_problem #динамическое_программирование

  7. LIFO, 3D и Динамический Шампур: как упаковать 6000 объектов в фуру за 12 секунд

    В статье представлен подробный разбор разработки высокопроизводительного 3D-движка для оптимизации загрузки транспортных средств. Мы прошли путь от простого полочного алгоритма с КПД 58% до комплексной системы, обеспечивающей плотность упаковки до 90%. Автор делится уникальным опытом решения критических проблем: от устранения коллизий и соблюдения границ трюма до внедрения динамической балансировки веса и строгой очередности выгрузки по городам (LIFO). Особое внимание уделено оптимизации алгоритма Subset Sum, позволившего достичь скорости обработки в 14 000 объектов в секунду, и верификации логики через систему из 12 Unit-тестов. Внутри — чистый код на Python, математические выкладки и эффектная визуализация процесса упаковки

    habr.com/ru/articles/992564/

    #алгоритмы #программирование #математика #python #логистика #lifo #оптимизация #bin_packing #subset_sum_problem #динамическое_программирование

  8. LIFO, 3D и Динамический Шампур: как упаковать 6000 объектов в фуру за 12 секунд

    В статье представлен подробный разбор разработки высокопроизводительного 3D-движка для оптимизации загрузки транспортных средств. Мы прошли путь от простого полочного алгоритма с КПД 58% до комплексной системы, обеспечивающей плотность упаковки до 90%. Автор делится уникальным опытом решения критических проблем: от устранения коллизий и соблюдения границ трюма до внедрения динамической балансировки веса и строгой очередности выгрузки по городам (LIFO). Особое внимание уделено оптимизации алгоритма Subset Sum, позволившего достичь скорости обработки в 14 000 объектов в секунду, и верификации логики через систему из 12 Unit-тестов. Внутри — чистый код на Python, математические выкладки и эффектная визуализация процесса упаковки

    habr.com/ru/articles/992564/

    #алгоритмы #программирование #математика #python #логистика #lifo #оптимизация #bin_packing #subset_sum_problem #динамическое_программирование

  9. LIFO, 3D и Динамический Шампур: как упаковать 6000 объектов в фуру за 12 секунд

    В статье представлен подробный разбор разработки высокопроизводительного 3D-движка для оптимизации загрузки транспортных средств. Мы прошли путь от простого полочного алгоритма с КПД 58% до комплексной системы, обеспечивающей плотность упаковки до 90%. Автор делится уникальным опытом решения критических проблем: от устранения коллизий и соблюдения границ трюма до внедрения динамической балансировки веса и строгой очередности выгрузки по городам (LIFO). Особое внимание уделено оптимизации алгоритма Subset Sum, позволившего достичь скорости обработки в 14 000 объектов в секунду, и верификации логики через систему из 12 Unit-тестов. Внутри — чистый код на Python, математические выкладки и эффектная визуализация процесса упаковки

    habr.com/ru/articles/992564/

    #алгоритмы #программирование #математика #python #логистика #lifo #оптимизация #bin_packing #subset_sum_problem #динамическое_программирование

  10. [Перевод] Алгоритмическое мышление для дата-сайентистов: как писать код, который экономит время и место

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

    habr.com/ru/companies/netology

    #алгоритмы #сложность_алгоритма #алгоритмическое_мышление #решение_задач #Пойа #c++ #реализация_цикла #big_o #динамическое_программирование #Мэтт_Уэлш

  11. SQL HowTo: динамическое программирование (Advent of Code 2024, Day 19: Linen Layout)

    В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024 . Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать. Используем динамическое программирование для подсчета количества вариантов размещений.

    habr.com/ru/companies/tensor/a

    #postgresql #sql #sql_tips_and_tricks #динамическое_программирование #advent_of_code__2024

  12. SQL HowTo: динамическое программирование (Advent of Code 2024, Day 19: Linen Layout)

    В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024 . Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать. Используем динамическое программирование для подсчета количества вариантов размещений.

    habr.com/ru/companies/tensor/a

    #postgresql #sql #sql_tips_and_tricks #динамическое_программирование #advent_of_code__2024

  13. SQL HowTo: динамическое программирование (Advent of Code 2024, Day 19: Linen Layout)

    В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024 . Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать. Используем динамическое программирование для подсчета количества вариантов размещений.

    habr.com/ru/companies/tensor/a

    #postgresql #sql #sql_tips_and_tricks #динамическое_программирование #advent_of_code__2024

  14. SQL HowTo: динамическое программирование (Advent of Code 2024, Day 19: Linen Layout)

    В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024 . Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать. Используем динамическое программирование для подсчета количества вариантов размещений.

    habr.com/ru/companies/tensor/a

    #postgresql #sql #sql_tips_and_tricks #динамическое_программирование #advent_of_code__2024

  15. Задача о банкомате

    Рассмотрим одну задачу, которая на leetcode маркирована как "medium", хотя на самом деле это невероятно сложная задача. Примечательна она тем, что допускает в разной степени оптимальные решения, самые упрощённые из которых действительно весьма просты, а самые оптимальные ещё не найдены современной наукой. В этой задаче ценно то, что на её примере можно изучать целый ряд техник программирования.

    habr.com/ru/articles/859758/

    #Задача #lisp #Scheme #размен_денег #рекурсия #динамическое_программирование #недетерминированное #программирование

  16. Разбор задачи «Regular Expression Matching»

    В этой статье я разберу решение задачи сопоставления строки шаблону с регулярным выражением, которая предлагается сайтом LeetCode под номером 10.

    habr.com/ru/articles/966134/

    #динамическое_программирование #регулярные_выражения #разбор_задач

  17. Конкатенация чисел и делимость на 13 — задачка от Клайва Фрэйзера

    Дан массив с числами, в десятичном представлении - из них можно удалить какие-то, а то что осталось конкатенировать. Для N чисел это даёт 2^N-1 возможных результатов (нельзя удалить все числа) - и нам интересно сколько из этих результатов делятся нацело на 13 . Для маленьких массивов можно написать простой перебор, но автор предлагает N=400000 - у одного из пользователей это сразу вызвало реакцию "2 в степени 400000 - это невозможно перебрать". Действительно, перебором тут не справиться :) Задача тут - а под катом, поскольку о ней самой уже говорить нечего, я немножко расскажу про автора - это довольно любопытно (и может когда-то я смогу более подробный пост о нём сделать если получу от него самого больше информации). Таинственный Незнакомец...

    habr.com/ru/companies/codeabbe

    #динамическое_программирование #задачи #занимательные_задачи

  18. [Перевод] Алгоритмическое мышление для дата-сайентистов: как писать код, который экономит время и место

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

    habr.com/ru/companies/netology

    #алгоритмы #сложность_алгоритма #алгоритмическое_мышление #решение_задач #Пойа #c++ #реализация_цикла #big_o #динамическое_программирование #Мэтт_Уэлш

  19. [Перевод] Алгоритмическое мышление для дата-сайентистов: как писать код, который экономит время и место

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

    habr.com/ru/companies/netology

    #алгоритмы #сложность_алгоритма #алгоритмическое_мышление #решение_задач #Пойа #c++ #реализация_цикла #big_o #динамическое_программирование #Мэтт_Уэлш

  20. Пошаговая Formula 1 — игра/задачка на программирование

    Среди игр на тетрадном листочке из школьной поры была такая Гонки - вы тоже помните? На удивление, похожую игру предлагает в своей старинной книжке Жак Арсак - машина "в пошаговом режиме" мчится по извилистой трассе на целочисленной плоскости - и нужно варьируя вектор скорости умудриться не вылететь - но и доехать не черепашьим шагом. Задача на основе этой игры добавлена на сайт к новогодним праздникам - вдруг кто-то устанет от оливье раньше времени :) Здесь в качестве входных данных вы получаете описание профиля всей трассы целиком - и нужно предложить последовательность ходов которые позволят безопасно проехать весь маршрут притом со средней скоростью не хуже 3 клеток за ход (считая только продольную компоненту скорости). Чтобы легче было понять принцип (вдруг кто-то не играл в детстве) - добавлена небольшая демонстрашка, в которой можно управлять прохождением по трассе кликая или тапая в нужные участки экрана. Честно говоря планировалось что в задаче будет спрашиваться наиболее быстрый маршрут - но составляя её я немного усомнился в собственном решении - поэтому она стала чуточку проще. Конечно, из-за того что вся трасса видна сразу, отсутствует интрига - но на днях планируется добавить версию игры в которой нужно играть против HTTP-сервера - и там "видимость" трассы будет ограниченной, так что если не хватает интриги - просто чуть-чуть подождите :) Кажется, дальше читать нечего

    habr.com/ru/companies/codeabbe

    #динамическое_программирование #задачи #упражнения

  21. Динамическое программирование на Python

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

    habr.com/ru/companies/otus/art

    #python #динамическое_программирование

  22. Коммивояжер на GPU

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

    habr.com/ru/articles/814465/

    #tsp #gpu #коммивояжер #динамическое_программирование #cuda #python