monte carlo 模拟计算 π 的准确度
Accuracy of monte carlo simulation to calcualate π
我创建了一个website,用Monte Carlo模拟计算π,目前有3202959700000
'dots'和2515023487209
在圈内.将其插入公式 4 * 2515023487209 / 3202959700000
returns 3.1408743446993728956377440527897
中是非常不正确的。这是错误的,因为 'dots' 还是我放错地方了?
使用 Monte Carlo 模拟计算 pi 非常 慢。比如this demonstration用了100万点,得到了3.16。您将需要荒谬数量的点来进一步完善该估计。
计算 pi 是了解 Monte Carlo 模拟的好方法,但如果您真的很关心获得尽可能多的数字,请尽快,我会向您指出 Chudnovsky Algorithm .
代码
var size = 500;
var Xpos = Math.floor(Math.random() * size);
var Ypos = Math.floor(Math.random() * size);
var dist = Math.hypot(Xpos - size / 2, Ypos - size / 2);
产生 0..499 范围内的随机坐标。这不是间隔 0..500 的均匀采样,因此必须预料到计算中的错误。第一个解决方法是将坐标加 0.5,以便将大正方形细分为由其中心表示的较小正方形。但最终该方法的准确度并不比计算位于圆内 "mostly" 的 500x500 细分中的正方形更好。
我创建了一个website,用Monte Carlo模拟计算π,目前有3202959700000
'dots'和2515023487209
在圈内.将其插入公式 4 * 2515023487209 / 3202959700000
returns 3.1408743446993728956377440527897
中是非常不正确的。这是错误的,因为 'dots' 还是我放错地方了?
使用 Monte Carlo 模拟计算 pi 非常 慢。比如this demonstration用了100万点,得到了3.16。您将需要荒谬数量的点来进一步完善该估计。
计算 pi 是了解 Monte Carlo 模拟的好方法,但如果您真的很关心获得尽可能多的数字,请尽快,我会向您指出 Chudnovsky Algorithm .
代码
var size = 500;
var Xpos = Math.floor(Math.random() * size);
var Ypos = Math.floor(Math.random() * size);
var dist = Math.hypot(Xpos - size / 2, Ypos - size / 2);
产生 0..499 范围内的随机坐标。这不是间隔 0..500 的均匀采样,因此必须预料到计算中的错误。第一个解决方法是将坐标加 0.5,以便将大正方形细分为由其中心表示的较小正方形。但最终该方法的准确度并不比计算位于圆内 "mostly" 的 500x500 细分中的正方形更好。