hirax.net::Keywords::「プロタイピング」のブログ



2010-03-15[n年前へ]

あみだくじシミュレーションをエクセルでプロトタイピングしてみよう 

 「電子ペーパー」でもあるエクセルは、プロトタイピングに向いている。と書いたので、今日は「あみだくじシミュレーション」をExcelで適当に書いて(描いて)みました。そうでした、私は自分自身で作ることが好きなのでした。

作成したエクセルのファイルは、ここに置いておきます。ワークシートの説明(あるいは修正)や、ワークシートを使って色々なことを考えてみよう、ということは明日以降にしてみようと思います。とりあえず、このエクセルのワークシートを実行しているところを動画キャプチャしたものが、下の動画です。

 

 このエクセル・ワークシートは、循環参照を使い、また計算順序を考慮したバッファリングを使うことで計算が成り立っています。ただし、エクセルの実装の仕組みのために、手動計算を行うためにF9を押しっぱなしにしても、反復計算が全セルに渡って行われるわけではないように思えます(これは検証していない未確認情報です)。そのため、計算を確実に行わせようと思うなら、今のところ、(あみだくじの横棒の数だけ)F9を連打する必要があります。

 あみだくじを考えるなら群論を使えとか、IF関数を使うのであればVBAを使うやり方と大して変わらないのでは?とか、エクセルでない他のプログラミング言語を使った方がよっぽど楽にプロトタイピングをすることができるのに…!?という感想も多々出てくるだろうと思います。

 とはいえ、今日はとりあえず、あみだくじシミュレーションをエクセルでプロトタイピングしてみました。(加減乗除だけで実現したのではない)つまらない実装ですが、(あくまで)暇なときに眺めて遊んで頂ければ、幸いです。

2010-04-08[n年前へ]

あみだくじ方程式を1次元拡散方程式を使ってエクセルで解いてみる 

 あみだくじを作ったとき、「アタリ」がどのような分布になるかは、大雑把には、拡散方程式で解くことができます。もし、あみだくじに横線があれば、右へ行ったり・左に行ったり、酔った人がさまよい歩く酔歩(ランダムウォーク)のように「アタリ」を選ぶことができる場所が、推移するわけです。

 たとえば、拡散方程式を横軸を縦線感覚で離散化し、縦軸は…これまた適当に離散化し、縦方向単位長さ移動するときに、どれだけ左右への移動が生じるか(=横線が縦線に対して、どの程度の頻度で存在するか)を考えてやり、そしてその離散化された拡散方程式を解いてやれば「あみだくじ」のアタリ分布を計算することができます。

 左端と右端の「境界条件」では、そこで「折り返されたような」動きをするわけですから、ノイマン条件を適用してやればよいことになります。また、時間ステップは、いつものように「循環参照による手動再計算」を用いて実現してやれば良い、ということになります。

 というわけで、エクセルでプロトタイピングして、作ってみたのが下の計算シートです(作成したエクセルシートはここに置いておきます)。たとえば、下のグラフは、アタリが左から3番目縦下部にあった場合に、一体、どの縦線を選ぶの良いかを示す確率分布になっています。今のこの状態なら、左から1番目、2番目、3番目が大体同じアタリ確率になっていて、もう少し細かく眺めてみると、左から2番目を選ぶのが一番アタリをひく可能性が高い、ということがわかります。

 上の例の場合には、一番アタリをひく可能性が高い線が、アタリのある真上より少し端側に寄りました。この「アタリをひく確率が高い線が端に寄る」傾向は、横線が多いほど激しくなります。…とはいえ、あみだくじを作る時のことを考えると、実際にはあまり横線の数が多くないように、つまり、手抜きあみだくじが多いように思います。

 そんな時は、手抜きあみだくじをするときは、アタリの真上近くを選び、そうでない場合にはアタリに近い端っこを選ぶ、というのが、あみだくじ方程式から導き出されるおトク知識と言えるのかもしれませんね。

あみだくじ方程式を拡散方程式を使ってエクセルで解いてみる








■Powered by yagm.net