Задача № 12. «Числовой автомат»
Числовой автомат «ТЮМ-XVI» может выполнять такие операции с натуральными числами :
1) вычесть из данного числа число 3 (если оно больше, чем 3);
2) умножить данное число на 3;
3) разделить данное число на 3 (если оно делится на 3 без остатка).
12.1 За какое наименьшее количество операций можно из числа 82 получить число 81?
12.2 За какое наименьшее количество операций можно из числа 81 получить число 82?
12.3 Аналогичный вопрос относительно получения числа
из числа
.
12.1.
-
операции
12.2. Можно так, не факт, что минимально:
- всего
операции.
upd:
Можно быстрее:
, тогда
и не всегда
. Тогда цепочку преобразований
можно укоротить до
из
букв.
12.3. Определим машину «ТЮМ-XVIQ», которая может выполнять над элементами из
операции
. Если значение
вычислимо (допустимо) на «ТЮМ-XVI», то она вычислимо и на «ТЮМ-XVIQ». С другой стороны, «ТЮМ-XVIQ» вообще не выдает
Exceptionов при вычислении любого
. Несложно доказать, что над
между
существует единственное соотношение
(переносим все
вправо, потом все
влево, получаем
, тогда
только при
, т.е. при
). В таком случае кратчайшая программа для перевода
в
строится просто: строится хоть какая-то программа, переводящая
в
, потом упрощается до
, а потом с помощью укорачивающего соотношения
максимально укорачивается (т.е. при
программа оптимальна).
(Оффтоп)
В качестве решения наша компания предлагает Вам обновить машину «ТЮМ-XVI» до «ТЮМ-XVIQ»
upd2:
1) Хотя бы одна программа, переводящая
в
такая. Без ограничения общности предполагаем, что
, ведь если
, то увеличивая
сведем случай
к
. А в случае
подходит такая программа:
, т.е.
.
В итоге искомая программа
,
можно взять
. Далее, перенося все
, кроме одной крайней влево, получаем сильно короткую, возможно, оптимальную программу. Для еще большего укорачивания ее можно также использовать соотношение
. Перенос допустим, поскольку наличие слева одной
гарантирует делимость на 3 выражения
, от которого считается все остальное
2) «ТЮМ-XVIQ» оставляет
на месте, т.е. она не любое рациональное число может перевести в другое рациональное. Поэтому все-таки придется следить, чтобы разности
не приводили к появлению отрицательных чисел
ошибки поисправлял