サイコロを振るプログラムがあるとする。それは同じ設定から同じ結果を出すプログラムであるが、乱数を組み込めば出目の確率をシュミレートするプログラムになる。
立方体に上下はないので、各面に番号を割り振ったものとして、番号に確率を割り当てれば、わざわざサイコロを振る必要はない。
初期位置と最終静止位置の変化で確率を求めるとしたら、変化に関わるすべての事象に乱数を組み込む必要がある。もちろんそんなことはできないので、影響の大きいほうから割り振っていくことになる。
そこでよく使われる手法が、全体を一つの確率として扱う方法だ。
何度も実験を繰り返して統計をとるのがその最たるものだが、計算しきれない条件を一括で処理する近似の数式を用いるのが常套だろう。
本来ならサイコロの動きをトレースし、変化の原因を突き止めてこそのシュミレーション。
しかし、それができたとしても、どこかで必ず確率の要素が出てくるとすれば、そのプログラムが正確にシュミレートできているか、証明できないことになる。
*----------------------------------------*
確率が発生する条件は「繰り返し」である。
何度もサイコロを振る。ルーレットを回す。毎回トランプをシャッフルする。
確率はより細かな確率の集合だったりする。
そこで、最も単純な2種類の確率発生装置を考えてみた。
多くの確率は回転によって発生する。回転にはπが含まれているので乱数にしやすい。
iの確率発生装置も同様の考えができる。
カードの確率で言うと、カードが全部で何枚か、何のカードが含まれているか、がわからないと確率は求められない。
i虚数=虚数次元は次元の単位であり、1を全体とした0から1までの実数を含んでいると考えてもらえればいい。タイミングで%のような扱いができれば乱数には十分である。
iにiを4回掛けるとiに戻るのも繰り返しと言えなくもない。
パソコンのプログラムで使う乱数はiの確率と言える。
※すべての粒子は虚数次元を含んでいるので、粒子同士が衝突する時、理論上、同じ状態で衝突することはない。