ゴルトンボードとは、二項分布から正規分布への近似を表現する確率シミュレーションです。
画像のように右か左に1/2の確率で落ちる釘を用意し、最終的にどこに落ちるかを検証します。
このプログラムをJavaScriptで作成してみました!
const row = 10;
const ball = 10000;
let array = [];
// とりあえずボール一個の時
let posi = () => {
var position = 0;
for (let i = 0; i < row; i++) {
let randomValue = Math.floor(Math.random() * 2);
position += randomValue;
}
return position;
};
// positionをボール分配列で出す
for (let i = 0; i < ball; i++) {
array.push(posi());
}
console.log({ array });
// arrayの出力結果をどこにボールがいくつ入っているかという配列に変える
let ans = Array(row).fill(0);
// row分調べる
for (let i = 0; i < row + 1; i++) {
ans[i] = array.filter((n) => n === i).length;
}
console.log({ ans });
結果
{
"ans": [
12,
97,
476,
1152,
2103,
2392,
1995,
1194,
456,
113,
10
]
}
なんとなく正規分布に近い出力結果が得られました!
パチンコなんかもこの理論を応用して作られてそうですね!
つまり、釘の数からパチンコの台が当たる期待値なんかも調べられそうです!
もっと良いコードを思いついた人などがいたらぜひコメントください!