
176 Гл. 3. Машинно-ориентированные алгоритмические языки
представляющее собой запись упрощённого вычисления выра-
жения
((а X а) X (а X а)) X ((а X а) X (а X а)).
Польза
от обозначений промежуточных результатов, позво-
ляющих избавиться от многократного вычисления
одинаковых подвыражений, очевидна'. Часто удаётся, как
выше,
подходящим образом преобразовать формулу. Например,
для вычисления логарифмической производной р'(х)/р(х) по-
линома
р(х) можно получить „двухрядную
схему
Горнера"; для
нашего примера это
будет
[real si
a*aOX*
+ al;
reaW2
= aO X х + si;
real s2 = sl X * + a2; real /3 s= t2 X x + s2;
real s3 = s2 X x + a3; real
/4s/3X^
+ s3;
/4/(s3 X ^ + a4)J.
3.1.1.2.
Обозначения промежуточных
результатов
в рекурсивных подпрограммах
Обозначения
промежуточных результатов иногда
могут
служить для сведения рекурсии общего вида к существенно
более простой линейной рекурсии. Проиллюстрируем это на
примере ханойских
башен.
Это название древней восточной
игры используют также как название определённого класса
проблем с той же структурой.
Пусть имеется п игральных дисков А, В, С, D, . .. возрастаю-
щего диаметра. И пусть диски в соответствии с их размерами
сложены в форме башни, так что диск наибольшего диаметра
лежит в самом низу. Тогда задача состоит в том, чтобы пере-
ложить башню с данного места (место 1) на
другое
(место 2).
В качестве вспомогательного средства для решения задачи в
нашем
распоряжении ещё одно место (место 3), куда можно скла-
дывать диски во время игры. Диски перекладываются по одному,
причём в каждый момент игры можно брать лишь верхний диск
одной из башен. В любой момент времени на каждом из трёх
мест диск большего диаметра должен лежать ниже диска мень-
шего диаметра.
Задача кажется весьма трудной, однако рекурсивное реше-
ние
очевидно. Обозначим самый нижний диск нашей башни
буквой L Переместим остальную часть башни, нижний диск
которой обозначим предшественником буквы i, с исходного
места 1 на свободное место 3; далее переместим обозначенный
буквой i диск на место 2 и затем перемещённую ранее часть
1
При этом в
случае
недетерминистических выражений множество воз-
можных
результатов
иногда
сужается.