Форум » Динамическое программирование » 23 №153, не пойму как начать! » Ответить

23 №153, не пойму как начать!

elzara: 153) (Е. Джобс) Исполнитель Калькулятор преобразует число, записанное на экране. У исполнителя есть две команды, которым присвоены номера: 1. Вычти 8 2. Раздели нацело на 2 Первая команда уменьшает число на 8, вторая – вдвое. Программа для исполнителя – это последовательность команд. Сколько существует таких программ, которые исходное число 102 преобразуют в число 5 и при этом траектория вычислений программы содержит число 43? Траектория из 102 в 5 (не понимаю как формулу расписать если из большего в меньшую.) Кn=Kn+8 Кn=K(n+8)+K(n*2) ?

Ответов - 5

Поляков: elzara пишет: Кn=K(n+8)+K(n*2) А что смущает? там одна формула.

elzara: Получается с 102 по 43 сначала, там 43 будет равно 1, и переходим на новую таблицу. А дальше значение будут равны 0? или пишем по единице?

Поляков: Дальше записываем 1 в ячейку с n = 43 и нули во все ячейки с бОльшими n. Идет вниз до 5.


elzara:

AnnaPershina: def f(x,y): if x<y: return 0 if x == y: return 1 if x > y: return f(x-8,y)+f(x//2,y) print(f(102,43)*f(43,5))



полная версия страницы