「这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战」
圆周率(Pi)是圆的周长与直径的比值,一般用希腊字母π表示,是一个在数学及物理学中普遍存在的数学常数。π也等于圆形之面积与半径平方之比。是精确计算圆周长、圆面积、球体积等几何形状的关键值。为了探索圆周率,本文用代码的方式来验算三种计算π的方式
圆周率的计算方法
割圆术
所谓“割圆术”,是用圆内接正多边形的面积去无限逼近圆面积并以此求取圆周率的方法
代码如下
1 | java复制代码i = 0 |
莱布尼兹公式
不同于牛顿-莱布尼茨公式)(微积分学),莱布尼茨公式用于对两个函数的乘积求取其高阶导数,一般的,如果函数u = u (x)与函数v= v(x)在点x处都具有n阶导数,那么此时有
代码如下:
1 | java复制代码s = 0 |
结果为:3.13
随机投点法(蒙特卡洛算法)
原理:随机模拟是一种随机试验的方法,也称为蒙特卡罗方法这种方法利用随机试验,根据频率与概率、平均值与期望值等之间的关系,推断出预期的结果。
在(0,0)和(1,1)范围内随机投test_sum个点,如果落到圆内,hit_sum数量加1,最后用hit_sum/test_sum算出落在圆内的概率
由得圆周率 PI=hit_sum / test_sum * 4
代码如下:
1 | java复制代码public class PI { |
随机测试的几次结果:
π的结果为:3.140336
π的结果为:3.141012
π的结果为:3.141396
本文转载自: 掘金