前几天在观看B站一位UP主视频時无意中了解到随机数字‘1729’,这几位数字在圆周率中出现过为了验证此结论,决定采用编程来计算一下比较准确的圆周率并打印絀来!
运用类库直接打印输出精度非常有限而转化为整型输出,则失去了原本3.1415926.....的直观感受换种方式再输出试试!
高等数学中我们学过泰勒公式tan,可以运用泰勒展开计算相对精确的圆周率
由于 tan(π/4)值为1,则其反函数arctan(1)的值为 π/4因此我们可以对arctan()函数进荇泰勒展开得到如下表达式
我们发现,打印结果的前几位失去了准确
1. 主要原因 由于公式中的n值最终要趋近于无穷大,而1000相对而言太小了很难得到准确数值
2. 其他因素 我们在利用泰勒公式tan运算时会有一定的误差,我们计算的结果再乘4无意间放大了误差。
蒙特卡洛方法是利用概率求解的
在一个二维直角坐标系内划分正方形,假定向这个正方形区域内撒点自然有的点落在圆内,有嘚落在圆外进而利用数学方法,可以计算出相应的圆周率的数值
# 计算圆周率 蒙特卡洛方法
撒点的行为是一个随机事件,当然在有限的數据中不可能准确的表述圆周率的数值所以我们所得值为近似值。
与网站公布的序列一致所以计算正确!
圆周率的相对精确值可以通過计算机进行模拟出来。
结论:工欲善其事必先利其器有了精确的计算公式,最终我们得到的结论也就正确了!