2014 dxdy logo

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

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




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

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

 
 
 
 
Сообщение06.12.2005, 00:44 
а какие правила перестановок-то. Тоже любые?

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


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

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

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

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

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

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


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