C
C
Java2 SE 5.0 API
Java2 SE 1.4 API
Java2 EE API
Struts 1.0.2
MSDN2 Library
MySQL 5.1
MySQL 4.1
HTMLリファレンス
CSSリファレンス
JavaScript
基本カラーチャート
カレンダー
 最新PG・講座情報
 最新ニュース
 電子辞書・辞典
ご意見・ご要望はこちらまで

課題

C

ハノイの塔の問題


1.ハノイの塔とは

 n枚のドーナツ形の円盤を大きい物順に重ねたA塔があります。このA塔の全ての円盤を塔Bに次のルールに従って移動するのがハノイの塔の問題です。

  • 塔はA,B,Cの3本あり、どの塔を作業移動用に利用してもよい。
  • 円盤は一度に1枚ずつしか移動できない。
  • 小さな円盤の上に大きな円盤を置くことはできない。

 

2.ハノイ移動の例

 今回はこの移動過程を画面表示するのですが、便宜上このような移動を「ハノイ移動」と呼ぶことにします。
 まずは3枚のハノイ移動をするには次のような流れになり、この中の1から7までの移動手順をプログラムで求めることになります。

  • 1の円盤をAからBに移動する
  • 2の円盤をAからCに移動する
  • 1の円盤をBからCに移動する
  • 3の円盤をAからBに移動する
  • 1の円盤をCからAに移動する
  • 2の円盤をCからBに移動する
  • 1の円盤をAからBに移動する

3枚のハノイ移動

 
 INDEX
  課題 C ハノイの塔の問題
1.ハノイの塔とは
  2.プログラムの仕様
  3.移動のルール
Top
Copyright© 2003-2007 FumikiChan All Rights Reserved.
http://www.fumikichan.net/