少し前に ライフゲームの記事 を書きましたが、それに関連して、せろふえさんが プログラムされた虫 という記事を書いています。 ごく大雑把に言えば、「いろんな規則を決めて一筆書きをしていくと、とても変わったパターンができる」 という話で、コンピュータの応用としても面白い話です。 最初に研究を始めた Paterson という人が、虫の這った跡をモデルにしたため、この話題は Paterson's Worms とも呼ばれているようです。
これを、オンラインで試して見る事ができる 「 soda 」 というサイトがありますので、紹介しておきます。 リンクページを開くと、Java アプレットが表われ、左上に6方向の線が表示されます。
時計の9時方向 : 虫が進入してくる方向(赤い線)
緑の線 : 次に虫が進むことのできる方向
黒い線 : すでに通過済みの方向
緑の線をクリックすると、その方向へ虫が移動し、通り道が描画されます。 虫が以前通った道にぶつかった場合の動作は、次のようになります。
1.未経験のパターンの場合は一旦停止し、緑の線をクリックするとその方向へ進む。
2.すでに経験済みのパターンであれば、自動的に方向を選んで進む。
3.進行できる方向が1つしかないときは、そちらへ進む。
4.進行できる方向が残っていないときは、終了する。
試しに、上図のように、上から順に丸印の所をクリックしてみましょう。 虫の進行方向には、時計回りに、1〜5 の番号がつけられており、上図のような規則は (1234) と表現されます。(アプレットの左上に表示されます。) この場合、4回方向指定を行なった後、最初の点に戻って終了します。
次に、別の規則で試してみましょう。 まず、ブラウザの更新ボタンをクリックして画面を初期状態にします。 そして、番号が (2454) となるように、クリックしてコさい。 今度は、4回方向指定の後、無限に広がるパターンが表われます。
それでは、問題。 せろふえさんの プログラムされた虫(2) で、下図のような、無限に伸びていくパターンが紹介されています。 このパターンを作るには、どのような方向指定をすれば良いでしょうか。 赤い丸の所が出発点です。 なお、上記アプレットを使うと、図のように上に伸びていくパターンになります。
最近のコメント