Рекурсивные комбинаторные алгоритмы
Задача о бандероли За пересылку бандероли надо уплатить 100 рублей. Сколькими способами можно оплатить ее марками стоимостью 1,2,3,5 рублей, если два способа, отличающиеся порядком марок, считаются различными (запас марок различного достоинства считаем неограниченным). Используем рекурсивную функцию F(n) = F(n-1) + F(n-2) + F(n-3) + F(n-5) с начальными условиями F(0) = 1, F(x) = 0 при x < 0 получается 117372865913707249 способов. обычной рекурсией его не получить. Только с сохранением уже подсчитанного: Кликните здесь для просмотра всего текста
с помощью динамического программирования задача решается более элегантно и быстро: Кликните здесь для просмотра всего текста
Размен рубля Требуется составить алгоритм подсчета количества способов, которыми можно разменять рубль медными монетами(достоинством в 1,2,3,5 копеек). Данная задача решается несколько другим способом, так как здесь последовательности должны быть упорядочены Кликните здесь для просмотра всего текста
Итого: 6518 способов. |
Всего комментариев 2
Комментарии
-
Thinker, а можешь написать динамику по этой рекурсии?
Запись от Dani размещена 10.07.2013 в 17:01 -
Запись от Thinker размещена 10.07.2013 в 18:28