找回密码
 注册
Simdroid-非首页
查看: 700|回复: 0

[3.编程] 蒙特·卡罗方法计算圆周率近似值

[复制链接]
发表于 2022-5-14 17:36:54 | 显示全部楼层 |阅读模式 来自 北京
假设有一块边长为 2 的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x, y)必然在木板上(更多的时候是落在单位圆内),如果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以 4,这个数字会无限逼近圆周率的值。这就是蒙特·卡罗发明的用于计算圆周率近似值的方法

times := 100000; 设定投掷次数
hits := 0; 落在圆内次数
for i from 1 to 100000 do
x := rand(0 .. 100);
y := rand(0 .. 100);
a := x()/100;
b := y()/100;
if a*a+b*b <= 1 then
hits := hits+1
end if
end do;
4.0*hits/times
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-25 18:43 , Processed in 0.025708 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表