Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 Ханойские башни
Ребята помогите разобраться в алгоритме следующей задачи:

Пусть в игре Ханойские башни исходное расположение колец произвольно, т.е. необъязательно, что на большем кольце лежит меньшее. Написать программу, переставляющую нужным образом кольца в этом случае.

 
а какие правила перестановок-то. Тоже любые?

 
Anonymous писал(а):
а какие правила перестановок-то. Тоже любые?


НЕТ! Колцо с меньшим радиусом должно лежать на кольце с большим радиусом!
В конце концов мы должны получить упорядоченную по возрастанию башенку!
Ещё раз напоминаю начальное положение колец в башенке произвольное!

 
Аватара пользователя
:evil:
Идея алгоритма:
Во всякий момент времени существуют вершинки $a < b < c$. Тогда можно переставить с $a$ упорядоченную пирамидку большую, чем $b$, на $b$.

Особым случаем является пустая ось. Ее следует рассматривать особо как сверхбольшой круг (id est, на нее можно класть все, что угодно, с нее класть ничего ни на кого нельзя.)

Критерий конца - одна упорядоченная пирамидка.

 в продолжение разговора о ханойских башнях
сори..не мог бы кто еще раз объяснить поподробней об алгоритме перестановки при рандомном расположении колец, если можно с привязкой к языку Си! заранее огромное спасибо!

 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group