淺釋"蒙地卡羅"算法:用"亂數"找π值
叫"蒙地卡羅"的原因,是因為似賭場:在一段長時間內,賭局的結果應趨向預期的機會率。 例如賭大小,玩一百萬局的話,大與小應趨向各佔50%。 * * * * * 來求Pi(π),在第一象限(右上,X, Y 均為正數)隨機選四個點,可能得到下圖的結果。 其比例: 圓內的點數 除以 整個四方形的點數 = 3/4 所以,整個圓形便是乘四: 3/4 x 4 = 3 我們知道 π 是 3.14... 結果誤差只有0.14..,看來不錯。如果我們隨機選四十點、四千點、四千萬點,將得出更準確數字。 那問題來了,怎樣判定在圓內(綠色)還是圓外(紅色)? 用亂數選出 x 與 y,算出與圓心距離,如果少過或等於半徑,就是圓內了 。 __________ 距離 = √ (x^2 + y^2) 用 javascript 程式 展示 function inCircle(x, y) { const radius = 1 let distance = Math.sqrt(x * x + y * y) return (distance <= radius) } var inside = 0 const total = 1e6 for (let i = 0; i < total; i++ ) { x = Math.random() y = Math.random() if (inCircle(x, y)) inside ++ } pi = (inside / total) * 4 console.log('Calculated Pi,...