Задача 8

Задача проверяет, что вы умеете создавать базовые алгоритмы для преобразования чисел.
Вам дается ограниченный набор операций (две штуки) и ограничения на максимальное количество команд (обычно пять команд).

Если у вас две операции и пять команд, то количество комбинаций (последовательностей) команд, может быть, максимум штуки. Формально можно перебирать их все подряд, используя таблицу:

Команда 1 Команда 2 Команда 3 Команда 4 Команда 5 Результат?
1 Операция 1 Операция 1 Операция 1 Операция 1 Операция 1
2 Операция 1 Операция 1 Операция 1 Операция 1 Операция 2
3 Операция 1 Операция 1 Операция 1 Операция 2 Операция 1
4 Операция 1 Операция 1 Операция 1 Операция 2 Операция 2
5 Операция 1 Операция 1 Операция 2 Операция 1 Операция 1
6 Операция 1 Операция 1 Операция 2 Операция 1 Операция 2
7 Операция 1 Операция 1 Операция 2 Операция 2 Операция 1
8 Операция 1 Операция 1 Операция 2 Операция 2 Операция 2
9 Операция 1 Операция 2 Операция 1 Операция 1 Операция 1
10 Операция 1 Операция 2 Операция 1 Операция 1 Операция 2
11 Операция 1 Операция 2 Операция 1 Операция 2 Операция 1
12 Операция 1 Операция 2 Операция 1 Операция 2 Операция 2
13 Операция 1 Операция 2 Операция 2 Операция 1 Операция 1
14 Операция 1 Операция 2 Операция 2 Операция 1 Операция 2
15 Операция 1 Операция 2 Операция 2 Операция 2 Операция 1
16 Операция 1 Операция 2 Операция 2 Операция 2 Операция 2
17 Операция 2 Операция 1 Операция 1 Операция 1 Операция 1
18 Операция 2 Операция 1 Операция 1 Операция 1 Операция 2
19 Операция 2 Операция 1 Операция 1 Операция 2 Операция 1
20 Операция 2 Операция 1 Операция 1 Операция 2 Операция 2
21 Операция 2 Операция 1 Операция 2 Операция 1 Операция 1
22 Операция 2 Операция 1 Операция 2 Операция 1 Операция 2
23 Операция 2 Операция 1 Операция 2 Операция 2 Операция 1
24 Операция 2 Операция 1 Операция 2 Операция 2 Операция 2
25 Операция 2 Операция 2 Операция 1 Операция 1 Операция 1
26 Операция 2 Операция 2 Операция 1 Операция 1 Операция 2
27 Операция 2 Операция 2 Операция 1 Операция 2 Операция 1
28 Операция 2 Операция 2 Операция 1 Операция 2 Операция 2
29 Операция 2 Операция 2 Операция 2 Операция 1 Операция 1
30 Операция 2 Операция 2 Операция 2 Операция 1 Операция 2
31 Операция 2 Операция 2 Операция 2 Операция 2 Операция 1
32 Операция 2 Операция 2 Операция 2 Операция 2 Операция 2

Легко заметить, что эта таблица - числа в двоичной системе от нуля () до тридцати одного (), в представлении, что символ - это первая операция, а - вторая операция.
Такой способ относительно долгий, потому что надо будет считать 32 раза набор команд на листочке или в уме. Его можно легко оптимизировать, понимая, что набор команд (), скорее всего, будет слишком маленьким числом.

Но есть другой вариант решения - начать с конца. Посмотрите внимательно на число, которое вам надо получить, и постройте цепочку из обратных команд, которые можно применять по заданию. Подробнее, этот метод разбирается на видео.

Темы:

Варианты: