java实现蒲丰投针求,用程序模拟蒲丰投针试验

蒲丰投针试验

1777年的一天,法国数学家蒲丰(Comte de Buffon,1707-1788)把一些朋友请到家里。他事先在一张大白纸上画好了一条条等距离的平行线,又拿出许多质量均匀、长度恰好是平行线间距的一半的小针,请朋友们把针一枚一枚随意投到白纸上,如图1。蒲丰则在一旁观察每一枚投出的针是否与平行线相交。计数结果是:共投了2212枚,其中704枚与平行线相交。于是,蒲丰计算了这两数之商:2212/704≈3.142,然后宣布,这就是圆周率π的近似值!

64f8138d352ac6e05c3a121b54b84172.png

假设平行线之间距离是2,共6条线,针的长度是1,每次y坐标在0~10之间,终点与起点的夹角是随机数,终点的y坐标是y+sin(a).2000次模拟的结果离π很远。100万次还差不多。

with t2 as(select (level-1)*2 L2 from dual connect by level<=6) --0 2 4 6 8 10

,a as(select dbms_random.value(0,10)y, sin(dbms_random.value(-100,100))sina from dual connect by level<=2000)

select 2000/count(*) pi

from a

where exists(select 1 from t2 where L2 between least(y , y+sina)and greatest(y , y+sina))

;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值