Программа на Python для Ханойской башни

Программа на Python для Ханойской башни

Рекурсия в Python на практике.
Ханойская башня.



Ханойская башня — это математическая головоломка, в которой используются три стержня и n дисков. Цель головоломки — переместить всю стопку дисков на другой стержень, следуя простым правилам:

  • Можно перемещать только один диск одновременно.
  • Перемещение состоит в том, чтобы взять верхний диск из одной стопки и положить его поверх другой стопки. То есть диск можно перемещать только если он находится на вершине стопки.
  • Диск нельзя положить поверх диска меньшего размера.
Важно учесть, что перенос n-1 верхних дисков с исходного стержня на вспомогательный стержень также рассматривается как новая проблема, которую можно решить тем же способом.


Программа на Python для Ханойской башни


# Рекурсивная функция Python для решения задачи о ханойской башне
def    Hanoi(n, begincol, endcol, helpcol):
     if   n>0:
          Hanoi(n-1, begincol, helpcol, endcol)
          print ("Перенести диск",n,"с стержня",begincol,"на стержень",endcol)
          Hanoi(n-1, helpcol, endcol, begincol)

# Запускаем программу
Hanoi(3, 'A', 'B', 'C')
# A, C, B = имена стержней


Программа на Python для Ханойской башни

Python. Рекурсия. Задача «Ханойская башня» (канал *Сириус.Курсы*)

Рекурсия в Python на практике. Ханойская башня. (канал *IT-Академия JustCode*)

Python #15 Рекурсия: ХАНОЙСКИЕ БАШНИ, ЧИСЛА ФИБОНАЧЧИ, ПЕРЕВОД ЧИСЕЛ В
ДВОИЧНУЮ СИСТЕМУ СЧИСЛЕНИЯ (канал *Дмитррий Васин*)


Еще алгоритмы тут: Алгоритмы.

Комментарии

Популярные сообщения из этого блога

Нахождение НОК (наименьшее общее кратное) в Python

Поиск простых чисел в диапазоне от 1 до 100

Бинарный поиск (также известный как двоичный поиск или метод половинного деления)

Как найти наибольший общий делитель (НОД) в Python

Сортировка массива методом пузырька на Python

Перебор (перестановка) чисел на Pyton

Перевод числа из десятичной системы в двоичную (бинарную) на Python

Сортировка массива методом выбора на Python

Сортировка массива методом вставки на Python