книги / Математическая логика и теория алгоритмов. Анализ алгоритмов
.pdfи xy , xy , zz ,
их ещё не было.
Подставляем нижнюю часть |
|
x |
|
, |
|
y |
, |
|
z |
: |
||||||||||||||
|
z |
|
x |
|
y |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
x |
|
|
z |
|
|
|
y |
|
|
|
|
|
|||||||||
n k, |
|
|
|
, |
|
|
|
|
, |
|
|
|
|
|
|
; |
|
|
|
|||||
|
z |
|
x |
|
y |
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
x |
|
|
|
y |
|
|
|
z |
|
|
|
|
||||||
n k 1, |
|
|
|
, |
|
|
|
, |
|
|
|
|
; |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
z |
|
|
|
y |
|
|
|
x |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
||||||||||
|
|
x |
|
, |
|
z |
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
z |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
y |
|
|
|
z |
|
|
|
x |
|
|
|
||||||||
|
n k 1, |
|
|
, |
, |
|
; |
|
|
|
||||||||||||||
|
y |
|
x |
|
z |
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2.36)
41
Таким образом, имеем подстановку: 5) z, x, y и перенос zx.
Подставляем нижнюю часть |
|
x |
|
, |
y |
, |
z |
: |
|||||||||||||||
|
y |
x |
z |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
x |
|
|
|
z |
|
|
|
y |
|
|
|
|
|||||||
n l, |
|
|
|
, |
|
|
|
, |
|
|
|
|
|
|
; |
|
|
|
|||||
|
y |
|
x |
|
z |
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
x |
|
|
y |
|
|
|
|
z |
|
|
|
|
||||
n l 1, |
|
|
|
|
, |
|
|
|
|
, |
|
|
|
; |
|
|
|||||||
|
|
y |
z |
|
|
x |
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2.37) |
|||||||
|
|
x |
|
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
, |
|
|
|
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
y |
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
y |
|
|
z |
|
|
|
|
x |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
n l 1, |
|
|
|
|
, |
|
|
|
, |
|
|
|
; |
|
|
||||||||
|
|
z |
x |
|
y |
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Такимобразом,получаемподстановку:6)y, x, z ипереносyx. Получаем все 6 вариантов (перестановки 3! = 6) перестановок xyz и 6 возможных переносов с одного стержня на другой
(размещения без повторений 3 · 2 = 6).
2.3.1. Анализ подстановок переменных в рекурсивном алгоритме решения задачи о Ханойской башне при n = 1
Исходное состояние изображено на рис. 2.11.
Рис. 2.11. Исходное состояние для n =1
Для решения задачи нужен всего один шаг (рис. 2.12).
Рис. 2.12. Целевое состояние для n =1
42
Проанализируем изменение порядка переменных для n = 1. Первый вызов:
|
|
x |
|
|
z |
|
|
|
y |
|
|
|
|
x |
|
|
z |
|
|
|
|
|
|
y |
|
|
|
|
|
|
|
|
x |
|
|
|
|
z |
|
|
|
|
y |
|
|
||||||||||||||||||||||
1, |
|
|
, |
|
|
|
|
, |
|
|
|
|
|
; |
|
0, |
|
|
|
|
|
, |
|
|
|
|
, |
|
|
|
|
|
|
|
|
; |
|
|
|
1, |
|
|
, |
|
|
|
|
|
, |
|
|
|
|
|
; |
||||||||||||
|
|
|
|
|
|
|
|
|
|
x |
|
y |
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||
x |
|
z |
|
|
y |
|
|
|
|
|
|
x |
|
z |
|
|
y |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
x |
|
|
|
y |
|
|
|
z |
|
|
|
|
|
|
|
x |
|
|
y |
|
|
|
|
z |
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
y |
|
|
|
z |
|
|
|
|||||||||||||||||
0, |
|
, |
|
, |
; |
|
|
1, |
, |
, |
|
|
; |
|
|
|
2, |
|
|
, |
|
|
|
, |
; |
|
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
z |
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
y z |
|
|
|
|
|
|
|
|
x z |
|
|
|
|
|
|
y |
|
|
|
|
|
|
x y |
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
|
x |
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
z |
|
|
|
|
|
|
|
|
. (2.38) |
||||||||||||
|
|
|
, |
; |
|
|
|
|
|
|
|
|
|
|
, |
|
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
; |
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
x |
z |
|
|
|
|
|
|
|
|
|
|
x |
|
y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
z |
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
||||||||||||||||||||||
|
0, |
y |
, |
z |
|
, |
|
|
|
|
1, |
|
y |
, |
|
z |
|
|
, |
|
|
|
|
|
2, |
y |
|
, |
|
z |
, |
|
|
|
|||||||||||||||||||||||||||||||||
|
y |
z |
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y |
|
z |
|
x |
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
z |
|
|
|
y |
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
В первой скобке (2.38) |
|
|
0, |
|
|
x |
, |
|
y |
, |
z |
; |
вызывает процедуру |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
x |
|
|
z |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
с другими значениями переменных – вторая скобка:
|
|
|
|
|
|
|
|
|
x |
|
|
|
z |
|
|
y |
|
|
|
||||||||||||
|
|
|
|
|
|
|
0, |
|
|
|
|
, |
|
|
|
|
|
, |
|
|
|
|
|
|
|
; |
|
||||
|
|
|
|
|
|
|
x |
|
y |
|
z |
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
y |
|
|
|
|
z |
|
|
|
|
|
||||||
|
x |
|
y |
|
z |
|
1, |
|
|
|
|
, |
|
|
|
|
, |
|
|
|
|
|
|
; |
|
||||||
|
|
|
|
x |
|
z |
|
|
y |
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
0, |
|
, |
|
, |
|
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
(2.39) |
x |
y |
z |
|
|
|
|
x |
|
|
z |
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
, |
|
; |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
x |
|
y |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
y |
|
|
|
z |
|
|
|
|
x |
|
|
|
||||||
|
|
|
|
|
|
|
|
1, |
|
|
, |
|
, |
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
z |
|
y |
|
x |
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поскольку получаем –1, то этот вызов заканчивается. Перестановки переменных при этом выглядят следующим образом
(рис. 2.13).
Далее выполняется единственный перенос (2.38): x,z :
xx , zz .
43
Рис. 2.13. Изменение порядка переменных при n =1 и вызове 0, xx , yy , zz
Затем после этого идёт вызов (2.38) 0, yy , zz , xx :
|
|
|
|
|
|
|
|
|
x |
|
|
|
z |
|
|
|
y |
|
|
||||||||||
|
|
|
|
|
|
|
0, |
|
|
|
|
|
, |
|
|
|
|
|
, |
|
|
|
|
; |
|
||||
|
|
|
|
|
|
|
y |
|
z |
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
y |
|
|
z |
|
|
|
|||||||
|
y |
|
z |
|
x |
|
1, |
|
|
|
|
|
, |
|
|
|
|
|
, |
|
|
|
; |
|
|||||
|
|
|
|
y |
|
|
x |
z |
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
0, |
|
, |
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
(2.40) |
y |
z |
x |
|
|
|
|
x |
|
|
|
|
z |
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
, |
|
; |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
y |
|
z |
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
y |
|
|
|
|
|
z |
|
|
x |
|
|
|
|||||
|
|
|
|
|
|
|
|
1, |
|
, |
|
|
, |
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
x |
|
|
z |
y |
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Перестановки переменных при этом выглядят следующим образом (рис. 2.14).
Поскольку и здесь получаем –1, то и этот вызов заканчивается (а почему не при 0?). Конец процедуры. Таким образом
осуществляется единственный перенос: x,z : xx , zz .
44
Рис. 2.14. Изменение порядка переменных
y z x
при n =1 и вызове 0, y , z , x
Здесь алгоритм не доходит до переноса «подбашни», так как её нет, переносится только самый большой диск (а у нас всего один диск, он и есть самый большой!). Всего одна (исходная) подстановка значений переменных. Дерево решения для n = 1 имеет вид, как на рис. 2.15.
Рис. 2.15. Дерево решения для n =1
45
2.3.2. Анализ подстановок переменных в рекурсивном алгоритме решения задачи о Ханойской башне при n = 2
Исходное состояние для n = 2 изображено на рис. 2.16.
Рис. 2.16. Исходное для n = 2
Первый шаг-перенос подбашни n–1 = 1 (рис. 2.17).
Рис. 2.17. Первый шаг для n =2 – перенос подбашни, состоящей всего из одного диска
Второй шаг – перенос самого большого диска (рис. 2.18).
Рис. 2.18. Перенос большого диска для n =2
Третий и последний шаг – перенос подбашни из одного диска (рис. 2.19).
Рис. 2.19. Целевое состояние для n =2
46
Анализируем перестановки переменных:
|
|
|
x |
|
|
|
|
z |
|
|
|
y |
|
|
|
|
|
x |
|
|
|
|
z |
|
|
|
|
y |
|
|
|
|
x |
|
|
|
z |
|
|
y |
|
|
|
|
|
|
x |
|
|
|
|
z |
|
|
|
|
y |
|
|
|
||||||||||||||||
|
2, |
|
|
|
|
, |
|
|
|
|
, |
|
|
|
|
; |
1, |
|
|
|
, |
|
|
, |
|
|
|
; |
|
0, |
|
|
|
, |
|
|
|
|
|
, |
|
|
|
|
; |
|
1, |
|
|
|
, |
|
|
|
, |
|
|
|
; |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
y |
|
z |
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
y |
|
z |
|
||||||||||||||||||||||||||||||||||||||||||
x |
z |
y |
|
x |
z |
y |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
x |
|
|
|
|
|
y |
|
|
|
z |
|
|
|
|
|
|
x |
|
|
|
|
y |
|
|
|
|
z |
|
|
|
|
|
|
|
x |
|
|
|
|
|
y |
|
|
z |
|
|
|
|
|
|
x |
|
|
|
|
y |
|
|
|
|
z |
|
|
|
|||||||||
1, |
|
, |
|
|
, |
|
; |
|
0, |
|
, |
|
|
, |
|
; |
|
1, |
, |
|
|
, |
|
; |
|
2, |
, |
|
|
|
, |
|
; |
|
(2.41) |
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
x |
|
|
z |
|
|
y |
|
|
|
x |
|
z |
|
|
y |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
x |
|
|
|
|
y |
|
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
y |
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
x |
|
|
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
z |
|
|
|
|
|
|
. |
|
||||||||
|
|
|
|
|
, |
|
; |
|
|
|
|
|
|
|
|
|
, |
|
; |
|
|
|
|
|
|
|
|
, |
|
|
; |
|
|
|
|
|
|
|
|
|
, |
|
; |
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
y |
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
x |
|
z |
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
z |
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
1, |
|
y |
, |
z |
, |
; |
|
|
0, |
|
y |
, |
z |
, |
x |
; |
|
|
1, |
y |
, |
z |
|
, |
; |
|
2, |
y |
, |
z |
, |
x |
; |
|
|
||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
y z x |
|
|
|
|
|
z y x |
|
|
|
|
|
|
|
y z x |
|
|
|
|
|
z y x |
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поскольку дошли до –1, то выходим (ибо begin if n > 0) и возвращаемся.
Исходя из вышеописанного, в дальнейшем можно ограничиваться «доведением до 0», не доходя до –1. Итак, первый пе-
ренос: 0 xx , zy , то есть «подбашня» перенесена: 2–1–0–(–1).
Идём обратно (с x, z, y).
|
x |
|
|
|
|
y |
|
|
|
z |
|
|
|
||
1, |
|
|
, |
|
|
|
, |
|
|
|
; |
|
|||
x |
|
y |
z |
|
|||||||||||
|
|
x |
|
|
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
, |
|
|
; |
|
|
|
(2.42) |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
x |
|
|
z |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
x |
|
|
|
|||
|
y |
|
|
|
|
z |
|
|
|
|
|
|
|||
1, |
|
|
|
, |
|
|
|
, |
|
|
|
; |
|
||
y |
|
|
z |
|
x |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
Выполняется xx , zz ,затемвыполняется«перелом» 1, yy , zz , xx :
|
|
|
|
|
|
|
|
|
x |
|
|
|
z |
|
|
|
|
y |
|
|
|
|
||
|
|
|
|
|
|
|
1, |
|
|
, |
|
|
|
, |
|
|
|
|
; |
|
||||
|
|
|
|
|
|
y |
|
z |
|
x |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
x |
|
|
|
y |
|
|
|
|
z |
|
|
|
|
||
|
y |
|
z |
|
x |
0, |
|
|
, |
|
|
|
|
, |
|
|
; |
|
(2.43) |
|||||
|
|
|
y |
|
x |
|
z |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
1, |
|
, |
|
, |
|
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
y |
z |
x |
|
|
|
x |
|
|
|
|
z |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
, |
|
|
; |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
y |
|
|
z |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
y |
|
|
|
z |
|
|
|
|
x |
|
|
|
|||
|
|
|
|
|
|
|
|
0, |
, |
, |
; |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
x |
|
|
|
z |
|
|
|
|
y |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47
Изменение порядка переменных изображено на рис. 2.20.
Рис. 2.20. Изменение порядка переменных при n =2 и выполнение вызова 1, yy , zz , xx
Поэтому осуществляется перенос 0 xy , zz . Далее опять,
как и при n = 1, получится –1, поэтому алгоритм закончит работу. Итак, получили 2–1–0 (перенос 1) –1 (перенос 2) –1 (перенос 3 после «перелома»). Дерево решения для n = 2 изображено
на рис. 2.21.
Рис. 2.21. Дерево решения для n =2
48
2.3.3. Анализ подстановок переменных в рекурсивном алгоритме решения задачи о Ханойской башне при n = 3
Начинаем:
|
|
x |
|
|
|
z |
|
|
|
y |
|
|
|
|
|
|
x |
|
|
|
z |
|
|
|
y |
|
|
|
x |
|
|
|
|
z |
|
|
y |
|
|
||||||||||||
|
3, |
|
|
, |
|
|
|
, |
|
|
|
|
; |
|
2, |
|
|
|
|
|
, |
|
|
|
|
|
, |
|
|
|
|
; |
1, |
|
|
, |
|
|
|
|
, |
|
|
|
; |
||||||
|
|
|
|
|
|
|
|
x |
|
y |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
x |
z |
|
y |
|
|
|
|
x |
|
z |
|
y |
|||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
x |
|
|
|
y |
|
|
|
z |
|
|
|
|
|
x |
|
|
|
|
y |
|
|
|
|
z |
|
|
|
|
x |
|
|
|
|
y |
|
|
z |
|
|
||||||||||
2, |
|
, |
, |
|
|
; |
1, |
|
, |
|
, |
|
; |
|
0, |
|
, |
|
, |
; |
|
||||||||||||||||||||||||||||||
|
|
|
|
x |
|
z |
|
y |
|
||||||||||||||||||||||||||||||||||||||||||
|
|
x |
|
|
|
y |
|
z |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
y |
|
|
z |
|
|
||||||||||||||||
|
|
|
x |
|
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
z |
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
z |
|
|
|
|
. (2.44) |
|||||||
|
|
|
|
, |
|
|
; |
|
|
|
|
|
|
|
|
, |
|
|
; |
|
|
|
|
|
|
|
|
, |
|
; |
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
x |
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
z |
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|||||||||||||||
|
2, |
y |
|
, |
|
z |
, |
|
|
; |
|
|
1, |
|
y |
, |
|
z |
|
, |
|
; |
|
|
0, |
y |
|
, |
|
z |
, |
; |
|
||||||||||||||||||
|
y |
|
|
z |
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y |
|
|
z |
x |
|
||||||||||||||||||||||
|
|
|
|
|
z |
|
y |
|
|
x |
|
|
|||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Подстановки имеют следующий вид (рис. 2.22).
Рис. 2.22. Изменение порядка переменных при n =3 – переходы 3–2–1–0
Итак, получаем первый перенос xx , zz . Возвращаемся
(с x, y, z) (рис. 2.23).
49
Рис. 2.23. Возврат к предыдущему шагу
При возвратах очевидно, что смена переменных не осуществляется, если только нет «перелома». Таким образом, получа-
ем второй перенос: xx , zy :
|
|
|
x |
|
|
|
z |
|
|
|
y |
|
|
||||||
|
2, |
|
|
|
|
|
, |
|
|
|
|
, |
|
|
|
|
; |
|
|
x |
|
y |
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
z |
|
|
||||||||
|
1, |
|
x |
, |
|
y |
, |
|
z |
; |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
x |
|
|
|
z |
|
|
|
y |
|
|
(2.45) |
|||||
|
|
|
|
x |
|
|
|
z |
|
|
|
|
|
|
|
|
|||
|
|
|
|
, |
|
|
; |
|
|
|
|
|
|||||||
|
|
|
|
x |
|
y |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
y |
|
|
|
z |
|
|
|
x |
|
|
|
|
||||
|
1, |
|
|
, |
|
, |
|
; |
|
|
|||||||||
|
|
z |
|
|
y |
|
x |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Далеевыполняется«перелом»(сz,y,x) 1, yz , zy , xx ;,получаем:
|
|
|
x |
|
|
|
z |
|
|
|
|
y |
|
|
|
|
|
||||
|
1, |
|
|
|
, |
|
|
|
|
, |
|
|
|
|
|
; |
|
||||
z |
|
y |
|
x |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
x |
|
|
|
y |
|
|
|
|
z |
|
|
|
|
|
||||
0, |
|
|
|
, |
|
|
|
|
, |
|
|
|
|
; |
|
(2.46) |
|||||
|
|
|
z |
|
|
|
x |
|
|
|
|
y |
|
|
|
|
|||||
|
|
|
|
x |
|
|
|
|
z |
|
|
|
|
|
|
|
|
. |
|
||
|
|
|
|
|
, |
|
|
|
; |
|
|
|
|
|
|
||||||
|
|
|
z |
|
|
y |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
y |
|
|
|
|
z |
|
|
|
|
x |
|
|
|
|
|
|||
|
|
0, |
, |
|
|
|
, |
|
|
; |
|
|
|||||||||
|
|
x |
|
|
y |
|
|
z |
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50