2009-09-07 6 views
0

Это вариант оригинальной проблемы Башни Ханоя. Те же правила применяются, но вместо одного пакета из n дисков есть два. Один стек красных дисков на левом полюсе и еще один стек фиолетовых дисков справа. Конечная конфигурация должна быть фиолетовой слева и красной справа. В общей сложности 3 полюса.Башни вариации ханой pseudocode

У меня возникли проблемы с пониманием/созданием псевдокода для алгоритма, который решает эту проблему. Пожалуйста помоги.

+0

Что мне не хватает? Один кусок от красного до пустого полюса один за раз. Затем повторите с фиолетовым, а затем снова с красным? –

+0

; -0 кричит, я вижу это сейчас. lol –

+0

Вы должны показать свой psuedo-код, показывая, что вы понимаете проблему Towers of Hanoi и как ее модифицировать. Кроме того, сколько дисков может быть на каждом полюсе? Я ожидаю, что есть информация, которую вы все еще не даете, чтобы решить эту проблему должным образом. Это не кажется более сложным, чем исходная проблема, так как два цвета можно обрабатывать довольно легко. –

ответ

0

Поскольку это домашнее задание, так что ответ будет неправильным, я бы предложил вам графически решить проблему Башни Ханоя.

Затем добавьте модификацию и посмотрите, как ваше оригинальное решение работает с новым изменением.

Вы должны увидеть, где оригинал может выйти из строя, но было бы легче сделать модификацию, глядя на нее графически.

Если вы выбираете язык, который легко выполняет графические решения, вы можете сделать это очень быстро.

Например, GWT может быть хорошим выбором или Rails, хотя TCL/TK также будет легким.

+0

У меня есть алгоритм, где 1. перемещение N-1 стека справа 2. MOVE 1 диск (красные) до среднего 3. шага 2n-2 стеков до середины 4. Движения диска 1 (фиолетовый) к слева 5. переместить 2n-2 стека влево 6. переместить 1 диск (красный) вправо 7. сортировать по стеку 2n-2 каждому соответствующему цвету часть псевдокода меня убивает. – 2009-09-07 02:19:17

+0

Если у вас три полюса, и вы делаете шаг (1), то у вас есть фиолетовый и красный на одном полюсе? Таким образом, вы можете иметь любое количество дисков на каждом полюсе? Или, действительно, есть 4 полюса? –

+0

3 полюса в этом варианте. – 2009-09-07 03:57:04

2

Проблема, которую вы представили, обычно не разрешима. Согласно wikipedia, самая тривиальная игра с несколькими стеками имеет два стека и четыре полюса, и в общем случае в два раза больше полюсов/колышек.

В случае с 2 стэками x 3 полюса вы можете довольно быстро увидеть, что при n> 1 вы не можете пройти очень далеко. Самые маленькие два диска занимают верхнюю часть двух или одного полюса, и поэтому вы никогда не сможете менять второй по величине два диска, так как для этого всегда требуется один временный полюс.

Смежные вопросы