科技工作者之家
科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。
科技工作者之家 2019-08-07
来源:中国指挥与控制学会
圆周率大家都不陌生,最早由欧几里德《几何原本》中提到圆周率是常数,第一个用寻求圆周率数值的人是阿基米德,中国数学家刘徽,和后来大名鼎鼎的祖冲之分别对圆周率进行了计算,从古到今对圆周率的计算方法有几十种。
下面就介绍几种求圆周率的方法:
1.随机投点法(蒙特卡洛算法)
这是粗略的求圆周率一种常用算法
在(0,0)和(1,1)范围内随机投test_sum个点,如果落到圆内,hit_sum数量加1,最后用hit_sum/test_sum算出落在圆内的概率,
由得圆周率 PI=hit_sum / test_sum * 4
public class PI {
public static void main(String[] args) {
int test_sum = 1000000;// 投的点数
int hit_sum = 0;// 投中的个数
double x, y;// x和y坐标点
for (int i = 0; i < test_sum; i++) {
// 随机得到一个坐标
x = Math.random();
y = Math.random();
if (x * x + y * y <= 1)// 判断掷入的这个点在不在在圆内
hit_sum++;
}
// 统计得到π的值
double pi = (double) hit_sum / test_sum * 4;
System.out.println("π的结果为:" + pi);
}
}
随机测试的几次结果:
π的结果为:3.140336
π的结果为:3.141012
π的结果为:3.141396
2.公式法
圆周率的公式特别多,介绍其中一个
这是一个迭代过程,code很容易,直接贴代码了
public class PI {
public static void main(String[] args) {
double my_pi = 2;
int _jingdu = 1000;//精度控制
for (int i = _jingdu; i > 0; i--)
my_pi = my_pi * i / (2 * i + 1) + 2;
System.out.println(my_pi);
}
}
输出结果:3.141592653589793
3.蒲丰投针
这一方法的步骤是:
1) 取一张白纸,在上面画上许多条间距为d的平行线。
2) 取一根长度为l(l<d) 的针,随机地向画有平行直线的纸上掷n次,观察针与直线相交的次数,记为m
3)计算针与直线相交的概率.
18世纪,法国数学家蒲丰和勒可莱尔提出的“投针问题”,记载于布丰1777年出版的著作中:“在平面上画有一组间距为d的平行线,将一根长度为l(l<d)的针任意掷在这个平面上,求此针与平行线中任一条相交的概率。”布丰本人证明了,这个概率是 p=2l/(πd) π为圆周率。
这个方法真是不可思议,感兴趣的朋友可以模拟一下。
证明:http://files.cnblogs.com/ysjxw/蒲丰投针与蒙特卡洛模拟.pdf
福利:四行代码计算圆周率800位的怪异程序
#include
#include
int a=10000, b, c=2800, d, e, f[2801], g;
main()
{
for(;b-c;)
f[b++]=a/5;
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
return 0;
}
————
编辑 ∑Gemini
来源:CSDN
转自:算法与数学之美
投稿邮箱:liuyali@c2.org.cn
长按下方二维码 免费订阅
如何加入学会
注册学会会员:
个人会员:
关注学会微信:中国指挥与控制学会(c2_china),回复“个人会员”获取入会申请表,按要求填写申请表即可,如有问题,可在公众号内进行留言。通过学会审核后方可在线进行支付宝缴纳会费。
单位会员:
关注学会微信:中国指挥与控制学会(c2_china),回复“单位会员”获取入会申请表,按要求填写申请表即可,如有问题,可在公众号内进行留言。通过学会审核后方可缴纳会费。
长按下方学会二维码,关注学会微信
来源:c2_china 中国指挥与控制学会
原文链接:http://mp.weixin.qq.com/s?__biz=MzA4ODcwOTExMQ==&mid=2655589312&idx=6&sn=1fbf96afe8868df757c9ac3026bd1782&chksm=8b9bb158bcec384ee9ce527d1b2c92facb01221c8b053afd1b0b1d5353435940b3edf9b60f1e&scene=27#wechat_redirect
版权声明:除非特别注明,本站所载内容来源于互联网、微信公众号等公开渠道,不代表本站观点,仅供参考、交流、公益传播之目的。转载的稿件版权归原作者或机构所有,如有侵权,请联系删除。
电话:(010)86409582
邮箱:kejie@scimall.org.cn
知百科|包含整个宇宙的圆周率π
汤涛院士科普讲座:《圆周率计算与现代计算数学》
扬州市智慧数学研究会成立
中国数学会丝路数学中心指导委员会第二次会议在北京召开
孙斌勇研究员获“中国优秀青年科技人才”奖
国际圆周率日,关于 π,你还不知道这些
中国古代圆周率π的计算史:计算圆周率的高效算法-外推法
圆周率精确到小数点后62.8万亿位
2017年丝路数学中心系列会议报道
(9)中国古代圆周率π的计算史:计算圆周率的高效算法-外推法