Для игры, описанной
Такое значение S — 56. Своим первым ходом Петя может получить позиции 57 или 84 (так как число делится
Приведём решение на языке Python.
def f(x, h):
if x >= 96:
return h % 2 == 0
if h == 0:
return 0
c = [f(x + 1, h - 1)]
if x % 2 == 0:
c += [f(x *3 // 2, h - 1)]
if x % 3 == 0:
c += [f(x *4 // 3, h - 1)]
if x % 2 != 0 and x % 3 != 0:
c += [f(x * 2, h - 1)]
return any (c) if h % 2 != 0 else all(c)
for x in range(96,1,-1):
if f(x, 4) == 1 and f(x, 2) == 0:
print("Задача 21: ", x)
break
Решим задание с помощью электронных таблиц.
Скопируем решение задачи 19 шестнадцать раз начиная
В ячейку M3 — ход =L3+1.
В ячейку M67 — ход =ЕСЛИ(ОСТАТ(L3;2)=0;L3+L3*0,5;-1000).
В ячейку M131 — ход =ЕСЛИ(ОСТАТ(L3;3)=0;L3+L3*1/3;-1000).
В ячейку M195 — ход =ЕСЛИ(И(ОСТАТ(L3;2)<>0;ОСТАТ(L3;3)<>0);L3*2;-1000).
Меняя значение
Получим следующую таблицу и подходящее значение 56: решение.xlsx.
Ответ: 56.

