地図/力学/エージェント

まずサイコロを振るだけ

動く点のいちばん単純な決め方は、次の向きを毎フレーム乱数で選ぶこと。上下左右のどれかひとつを選んで、その向きへ一歩進む。前の一歩は覚えず、毎回まっさらに振り直す。

ランダムウォーク(酔歩)。次の一歩を毎回一様乱数で選ぶ。各ステップが独立で、平均すると原点に留まるが、原点からの距離の期待値は歩数 N に対して √N で伸びる。距離そのものでなく二乗の期待値が N に比例する。一歩ぶんの変位が積み重なって広がっていく拡散の最小モデルで、ブラウン運動の離散版にあたる。同じ酔歩に「すでに固まった塊に触れたら止まる」を一行足すと拡散律速凝集(DLA)の枝になる。

一点だけ動かして跡を残すと、決め方の素朴さが出る。

Math.floor(Math.random() * 4)0〜3 のどれかを引き、その番号で向きを一つ選んで 2px 進む。端に出たら反対側から入れ直すので、点は画面を抜けずに繞り続ける。背景は毎フレーム半透明の paper を薄く塗り重ねていて、古い足跡がゆっくり沈んで尾を引く。

点は中心から離れるが、まっすぐ遠ざかりはしない。行きつ戻りつしながら、原点からの距離はおおむね歩数の平方根に比例して伸びる。1 ステップを Math.random() < 0.5 ? +1 : -1 の一軸だけにすると数直線の上の酔歩になり、向きの選択肢を 8 方向に増やすと斜めにも進む。