Предмет: Информатика, автор: LATUU

Исполнитель U18 преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера:


1. Вычесть 1


2. Вычесть 3



3. Разделить нацело на 3


При выполнении команды 3 выполняется деление нацело (остаток отбрасывается). Программа для исполнителя U18 – это последовательность команд. Сколько существует таких программ, которые исходное число 22 преобразуют в число 2?

Ответы

Автор ответа: HP2020
7

Ответ:

2196

Объяснение:

Посчитаем, сколько команд переводят 22 в n, обозначим это количество как a(n). Положим a(22) = 1 (существует одна - пустая - программа, переводящая 22 в 22) и a(n) = 0 для всех n больше 22.

Любое число n могло получиться следующими способами:

  • из n + 1 путем вычитания 1
  • из n + 3 путем вычитания 3
  • из 3n путем деления на 3
  • из 3n + 1 путем деления на 3
  • из 3n + 2 путем деления на 3

Тогда a(n) = a(n + 1) + a(n + 3) + a(3n) + a(3n + 1) + a(3n + 2).

Начинаем последовательно вычислять значения:

a(21) = a(22) + 0 + 0 + 0 + 0 = 1

a(20) = a(21) + 0 + 0 + 0 + 0 = 1

a(19) = a(20) + a(22) + 0 + 0 + 0 = 2

...

a(7) = a(8) + a(10) + a(21) + a(22) + 0

a(6) = a(7) + a(9) + a(18) + a(19) + a(20)

...

Получившиеся значения приведены в таблице:

\begin{array}{||c|c||c|c||c|c||c|c||}n&a(n)&n&a(n)&n&a(n)&n&a(n)\\22&1&16&6&10&60&4&684\\21&1&15&9&9&88&3&1158\\20&1&14&13&8&129&2&2196\\19&2&13&19&7&191\\18&3&12&28&6&285\\17&4&11&41&5&433\end{array}


Aikiden1: При n = 7 будет 129+60+1 = 190, а не 191!
Поэтому дальше ошибка идёт
Aikiden1: Будет:
7 - 190
6 - 281
5 - 419
4 - 637
3 - 1006
2 - 1706
Ответ: 1706.
Похожие вопросы