Лучшие помощники
- Megamozg 2205 б
- Matalya1 1800 б
- DevAdmin 1720 б
- arkasha_bortnikov 900 б
- Dwayne_Johnson 870 б
2 апреля 2023 13:20
1002
В основу эффективного решения головоломки «Ханойская башня» положен алгоритм, суть которого сводится к следующему: для перемещения башни, состоящей из п колец, спервого стержня на третий мы должны решить чуть более простую задачу переместить на второй стержень башню, состоящую из п-1 кольца. После этого нижний диск с первого стержня перемещается на третий и повторно осуществляется перемещение башни из п-1 кольца, но уже со второго диска на третий. Таким образом, число ходов, необходимых для перемещения башни из л колец, равно удвоенному числу ходов, необходимых для перемещения башни из и-1 кольца, и ещё одному ходу. Используйте эту закономерность для вычисления числа ходов, необходимых для перемещения башни из 64 колец. Вычислите, сколько времени займёт такое перемещение, если считать, что на один ход требуется 1 секунда.
1
ответ
# Python 3.X
def hanoi(n):
if n == 1:
return 1
else:
return 2 * hanoi(n-1) + 1
print(hanoi(64))
# Ответ: 18 446 744 073 709 551 615 секунд
def hanoi(n):
if n == 1:
return 1
else:
return 2 * hanoi(n-1) + 1
print(hanoi(64))
# Ответ: 18 446 744 073 709 551 615 секунд
0
·
Хороший ответ
4 апреля 2023 13:20
Остались вопросы?
Еще вопросы по категории Информатика
N =5 A=[0]*N for i in range(N): A[i]=i+3 Какие значения будут записаны в массив A? [...
Пользователь, перемещаясь из одного каталога в другой, последовательно посетил каталоги LESSONS, CLASS, SCHOOL, D:\ , MYDOC, LETTERS. При каждом перем...
Выберите фрагмент программы, в котором ищется произведение 1*2*3*4*5 p:=1; i:=1; while i<=5 do begin p:=p*i; i:=i+1; end; p:=1; i:=1; while i<=...
Найти S треугольника, если известна сторона а = 3.07 и высота h = 0.7...
Что вы можете сказать о массиве, сформированном следующим образом? а) for i :=1 to 10 do a[i] :=random(101)-50 б) for i :=1 to 20 do a[i] := i в) fo...