アルゴリズム講座/はじめに/されど人の英知無くしては ホームページへ戻る 目次へ戻る
パズル問題解法のアルゴリズム講座

はじめに

されど人の英知無くしては

 すべてのパターンを生成して題意との一致を確認するという呆れた解法がコンピュータによって可能なら、どんな難解な問題でも簡単に答えを求められそうな気がします。

 ところが、そう簡単ではないのです。先ほどの例は全パターンが8100通り程度だったからよかったのです。どんなスーパーコンピュータでも実行速度には限界があります。

 ライツアウトというゲームを当ページで紹介していますが、これは5×5=25個のボタンを押すか押さないかの2通りからの選択なので「2の25乗=33,554,432通り」のパターンを調べればよいことになりますが、果たして瞬時に答えを返すでしょうか。

問題画面をで設定解答画面をで表示
 左のJAVAアプレットは本当に33,554,432通りを調べて答えを出すようになっています。覚悟して試してみて下さい。

 ご注意ください。解答が出るまで処理があなたのパソコンに常駐します。

 正式版なら瞬時に答えを返すのに、この版では約30秒程(Pentium200MHzの場合)たたないと答えを返しません。いったい何が違うのでしょうか。

 補足:Netscape3以前の場合は約1分(Pentium200MHz)かかります。
 正式版は、33,554,432通りも調べていないのです。調べる必要の無いパターンは作らないように工夫しているのです。

 その工夫こそが、コンピュータを「魔物」らしく見せる人の英知なのです。

 30秒もの処理を瞬時に済ましてしまうアイデアを考えることが、コンピュータプログラミングパズルの醍醐味なのです。パズルのプログラミングはパズルを解く以上にパズルの楽しさを味わえる最高のパズルだと私は考えているのです。

何んの工夫もないプログラムだと、1日中処理を実行させても、1ヶ月処理を実行させても答えが返ってこないということは、ザラにあることなのです。


目次へ戻る   前の頁へ戻る  次の頁へ進む