小数点化分数的过程_圆周率有几种算法?圆周率的计算经历了的过程

圆周率的计算过程,经历了实验算法、几何算法、分析算法和计算机算法的过程;其中,新工具的出现,对计算圆周率起了重要作用。

  实验算法

  在古时候,人们对圆周率的精度要求还不高。比如公元前1世纪左右,我国最古老的数学著作《周髀算经》,就记载着“径一周三”,也就是把圆周率近似看作“3”。

  在古巴比伦时期(公元前1900年~公元前1600年),古巴比伦人就记载了圆周率=25/8=3.125。

  古人只需要画一个圆,然后分别测量其周长和直径,就可以得到圆周率;虽然和圆周率的真实数值相差很大,但是对那时候的生产活动来说足够用了。

  但该方法对圆周率的计算精度非常有限,只能精确到圆周率的小数点后第一位,要想精确到第二位都很困难。

  几何算法

  几何算法避免了测量的误差,比如阿基米德(公元前287~212),计算圆的内切正多边形和外接正多边形,然后取其平均值,把圆周率计算到3.141851。

feb18d6e735cb32cf7823a247c1a35af.png

圆周率有几种算法?圆周率的计算经历了的过程

  而我国的古代数学家祖冲之(429~500),利用割圆术,计算到正24576边形,把圆周率精确到小数点后第七位(3.1415926~3.1415927),这一记录保持了800多年才被欧洲人打破。

  15世纪,阿拉伯数学家卡西,把圆周率精确到17位小数。

  1596年,德国数学家鲁道夫·范·科伊伦,把圆周率精确到20位小数。

  1610年,鲁道夫·范·科伊伦耗尽毕生精力,用了10多年的时间,再次把圆周率精确到了35位,这也算是手工几何算法的极限了。

  分析算法

  进入18世纪后,数学家有了三角函数、连分数、无穷级数、微积分和虚数等工具,大量圆周率的计算公式涌现出来,大大提高了数学家计算圆周率的效率。

  比如著名的梅钦公式:

a5c155da6764beef3ad9767cf124a236.png

圆周率有几种算法?圆周率的计算经历了的过程

  由英国数学家梅钦,于1706年提出,该级数的收敛速度非常快,至今也是计算机计算圆周率的主要公式之一。

  数学家Jurij Vega,在1789年,利用梅钦公式把圆周率精确到140位小数(后来得知前137位才是正确的)。

  人工计算的记录,是在1948年,美国两位数学家利用一个全新的圆周率公式,手工计算到了808位小数。

  比如我们利用虚数i的性质,可以轻松构造出许多圆周率的级数:

f3519b4d94b68364b307fe133477da8c.png

圆周率有几种算法?圆周率的计算经历了的过程

  还有印度数学奇才拉马努金,仅凭冥想就能意会出许多圆周率级数,而且级数的收敛速度非常快,比如下面两个公式就是拉马努金提出来的:

f05206a7b79b44d44caaca4d8240c3a1.png

圆周率有几种算法?圆周率的计算经历了的过程

  其中第二个公式,只要输入第一项,就可以把圆周率精确到十进制的第八位:

0cef20af53470f5526dd887cb4565031.png

圆周率有几种算法?圆周率的计算经历了的过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算圆周率小数点100位,可以使用Python的库函数或者自己编写算法来实现。 使用库函数: Python的math库中提供了圆周率π的常量,可以直接使用该常量来获取圆周率的近似值。然而,math库提供的圆周率只有15位小数,而我们需要计算的是100位小数。为了满足这个要求,可以使用decimal库中的Decimal类来进行高精度计算。 以下是一个使用Decimal类计算圆周率的示例代码: ``` import decimal # 设置Decimal类的精度为100位小数 decimal.getcontext().prec = 100 # 计算圆周率 pi = decimal.Decimal(0) for k in range(100): pi += (decimal.Decimal(1) / 16 ** k) * ( (decimal.Decimal(4) / (8 * k + 1)) - (decimal.Decimal(2) / (8 * k + 4)) - (decimal.Decimal(1) / (8 * k + 5)) - (decimal.Decimal(1) / (8 * k + 6)) ) print(pi) ``` 上述代码中,通过循环累加的方式来计算圆周率,其中使用到了数学公式中的马青公式。最后打印出来的pi即为所求的圆周率的100位小数。 自己编写算法: 除了使用库函数外,还可以使用自己编写的算法计算圆周率。目前已经有不少算法可以用来计算圆周率,例如蒙特卡洛方法、连分数算法等。这些算法的原理比较复杂,需要进行大量的数学运算和迭代计算。这里就不一一介绍了。 总之,计算圆周率的100位小数是一个较为复杂的问题,可以借助Python的库函数来简计算,也可以尝试自己编写算法来实现。希望以上回答能对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值