https://github.com/promathbul/tower_of_hanoi
Решение задачи 'Ханойская башня'
https://github.com/promathbul/tower_of_hanoi
hanoi hanoi-game hanoi-towers java recursion recursive-algorithm recursive-functions
Last synced: about 1 month ago
JSON representation
Решение задачи 'Ханойская башня'
- Host: GitHub
- URL: https://github.com/promathbul/tower_of_hanoi
- Owner: PromathBul
- Created: 2022-12-16T13:34:15.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-12-16T13:34:42.000Z (almost 3 years ago)
- Last Synced: 2025-08-08T21:49:23.753Z (3 months ago)
- Topics: hanoi, hanoi-game, hanoi-towers, java, recursion, recursive-algorithm, recursive-functions
- Language: Java
- Homepage:
- Size: 1000 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Задача
Написать программу, показывающую последовательность действий для игры “Ханойская башня”.
# Решение
Задача решается рекурсивно.
По сути решение имеет фрактальную природу и повторяет себя.
_**Рассуждения**_
Пусть мы умеем перекладывать `n` дисков, тогда и `n + 1` мы также можем переложить.
Пускай нам надо переложить `n + 1` дисков на стержень-приемник. Так как мы умеем перекладывать `n` дисков, то мы эту стопку переложим на вспомогательный стержень.
Затем, положив самый большой диск на стержень-приемник, мы воспользуемся тем, что умеем перекладывать стопку из `n` элементов и переложим эту стопку со вспомогательного стержня на стержень-приемник.
Таким образом, мы можем двигаться рекурсивно от любого `n` дисков к последнему самому большому.