Как эта повторяющаяся Ханойская башня работает? C [дубликат]

7
задан EsmaeelE 20 February 2018 в 12:51
поделиться

2 ответа

Может быть легче увидеть в PSEUDOCODE:

GET NUMBER OF DISKS AS n
WHILE x BETWEEN 1 INCLUSIVE AND 1 LEFT-SHIFTED BY n BITS
    SUBTRACT 1 FROM n, DIVIDE BY 3 AND TAKE THE REMAINDER AS A
    OR x WITH x-1, ADD 1 TO THAT, DIVIDE BY 3 AND TAKE THE REMAINDER AS B
    PRINT "MOVE FROM TOWER " A " TO TOWER " B
    ADD 1 TO x

1 LEFT SHIFTED BY n BITS - это в основном 2 в степени n, 16 в случае 4 дисков.

Если вы пройдете эту последовательность вручную, вы должны увидеть прогрессию движения дисков. http://library.ust.hk/images/highlights/Tower_of_Hanoi_4.gif

11
ответ дан 6 December 2019 в 11:46
поделиться

Это одно из бинарных решений Tower of Hanoi, подробное объяснение этого алгоритма есть в Википедии - читайте параграф "Бинарное решение".

6
ответ дан 6 December 2019 в 11:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: