Образовательный портал Павла Добряка

3.2. Количество программ и чисел

Задача 3.2.1. Исполнитель может выполнять только две команды, которым присвоены номера:

  1. Прибавь 1
  2. Возведи во вторую степень

Напишите самую короткую программу, которая из числа 1 получает 37. Если таких программ несколько, напишите любую из них.

 

Задача 3.2.2. У исполнителя «Троечник» две команды, которым присвоены номера:

1. прибавь 3,

2. умножь на 3.

Первая из этих команд увеличивает число на экране на 3, вторая умножает его на 3. Программа - это последовательность номеров команд. Например, 121 - это программа прибавь 3, умножь на 3, прибавь 3. Эта программа преобразует число 1 в число 15. 

Запишите программу, которая преобразует число 6 в число 69 и содержит не более 5 команд. Если таких программ более одной, то запишите любую из них.

Примечание. В информатике и программировании решение задачи с возвратом на предыдущие шаги и корректировкой называется бэктрекингом. Это распространенный прием.

 

Задача 3.2.3. Исполнитель может выполнять только две команды, которым присвоены номера:

  1. Прибавь 1
  2. Умножь на 2

Сколько есть программ, которые число 1 преобразуют в число 21?

 

Задача 3.2.4. Исполнитель может выполнять только две команды, которым присвоены номера:

  1. Прибавь 1
  2. Прибавь 2

Сколько различных чисел можно получить из числа 2 с помощью программы, которая содержит не более 4 команд?

Ошибка 1. Строить дерево, как в предыдущей задаче, неверно, так как будет много ветвей и потом придется пересчитывать одинаковые числа в узлах.

 

Задача 3.2.5. Исполнитель может выполнять только две команды:

  1. Прибавь 3
  2. Вычти 2

Если в ходе вычислений появляется отрицательное число, то оно не выводится. Сколько различных чисел можно получить из числа 2 с помощью программ, которые содержат ровно 18 команд?

Ошибка. Строить дерево, даже как в предыдущей задаче, неверно, так как на 18 уровне оно будет сильно разветвленным.

 

Задача 3.2.6. У исполнителя Калькулятор две команды: 

1. умножь на 15,

2. подели на 2.

Первая из них увеличивает число на экране в 15 раз, вторая – уменьшает его в 2 раза. Программа для Калькулятора – это последовательность команд. Сколько различных чисел можно получить из числа 4096 с помощью программы, которая содержит ровно 12 команд?

 

Задача 3.2.7. У исполнителя Калькулятор две команды: 

1. прибавь 2

2. прибавь 3.

 Первая из них увеличивает число на экране на 2, вторая — на 3. Сколько различных чисел можно получить из числа 2 с помощью программы, которая содержит ровно 10 команд?

 

Задача 3.2.8. Исполнитель может выполнять только три команды:

  1. Прибавь 2
  2. Прибавь 4
  3. Прибавь 5

Сколько есть программ, которые число 31 преобразуют в число 51?

 

Задача 3.2.9. Исполнитель Фибо преобразует число на экране.

У исполнителя есть две команды, которым присвоены номера:

1. Прибавить 1

2. Прибавить 2

Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2.

Программа для исполнителя Фибо — это последовательность команд.

Сколько существует программ, которые преобразуют исходное число 3 в число 20, и при этом траектория вычислений содержит число 9 и не содержит числа 15?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 212 при исходном числе 7 траектория будет состоять из чисел 9, 10, 12.

Примечание.

На рекурсию есть отдельная задача в ЕГЭ под номером 11.