第9講 再帰的呼び出しでハノイの塔の問題を解決しよう!
第1話 プログラムの核心部分
さて、久しぶりに応用講座の再開です。
ハノイの塔を取り上げます。
今回はかなり難解です。
しばらく、中止していた理由の一つは、
皆さんにハノイの塔を理解して頂く解説が思いつかなかったからです。
プログラムはすでにUPしてあります。
ハノイの塔です。
これのプログラムソースの核心部分は次のような簡単なものです。
Sub hanoinotou(n, s As Integer, t As Integer, u As Integer)

  Dim i, j As Integer

  If n > 0 Then
    Call hanoinotou(n - 1, s, u, t)
    kaisuu = kaisuu + 1
    Call koukanhairetu(n, s, t)
    Call hanoinotou(n - 1, u, t, s)
  End If

End Sub
なぜこのような簡単なプログラムで複雑なパズルが解けてしまうのでしょうか。
皆さんが理解できるまで、複数回をかけて説明していきたいと思います。
今回は、予告だけで終了させていただきます。


VB入門講義応用編トップへ

VB入門講義トップへ