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

[3.编程] 蒲丰投针问题简单仿真 Buffon's Needle, The Simplest Case

[复制链接]
发表于 2018-7-9 11:58:00 | 显示全部楼层 |阅读模式 来自 中国
Buffon’s Needle The Simplest Case
在水平面上画一些间距为a的平行线,把一枚长为L(L<a)的钢针随意抛到这一平面上。投针的结果将会有两种:一种是针与这组平行线中的一条直线相交,一种是不相交。设n为投针总次数,k为相交次数,如果投针次数足够多,就会发现公式2Ln/(ak)计算出来的值就是圆周率 。当然,计算精度与投针次数有关,一般情况下投针次数要到成千上万次,才能有较好的计算精度。
Simulation with Maple:
restart:
a:=2018;
L:=2016;
n:=10000;
k:=0;
for j to n do
s:=rand(0 .. a/2);
y:=s();
t:=rand(0 .. 180);
th:=t()*Pi/180;
d:=L/2*evalf(sin(th));
if y <d  then
k:= k+1;
end if;
end do;
pie := 2.0*L*n/(a*k)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 07:45 , Processed in 0.031441 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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