考研结束之后第一次记录东西。关于PI(3.1415926)
在数学届,或者整个自然界,这是一个神奇的数字,关于pi的计算,最容易思考的方法可能就是在一个单元圆⚪->单位圆方程(pow(x)+pow(y)=1) 产生一组随机数x1、y1,只要x1,y1 满足在单位圆方程里面就认定他为有效数组。只要产生足够多的随机数组,记录随机数组的个数位M,而满足位于单位圆内的有效数组的个数位m。那么pi ≈ m:M,这是以前我能理解的范围。经历过考研之后,确实学习到了更多的理论知识,不管前路如何茫茫,起码给我带来的知识是有用的。
论级数的妙用。关于从第1项累加的第n项,也许我们级数这种结果是很恼火的,但是微处理器热衷于这个。这里提出一个关于计算PI的公式:
利用无穷级数,当x取值为1的时候 arcttan1 = Π/4
写成这样就可以利用计算机进行运算咯。打开python编译器
import time
def claPI():
N = 10_000_000 #计算1千万次累加
sum = 0.0
getInitTimes = time.time()
for i in range(N+1):
if(i%2==0):
sum = sum + 1/(2*i+1)
elif(i%2==1):
sum = sum - 1/(2*i+1)
print("waste:"+str(time.time()-getInitTimes)+"s") #返回值 返回当前时间的时间戳(1970纪元后经过的浮点秒数)
print(sum*4)
if __name__ == '__main__':
claPI()
感紧python xxx.py 结果是
累计1千万次的精度确实不行,应该是1/3,这样的分式的值,他应该是一个准确无误的值,小学知识告诉我,他应该是一个无限循环小数,这意味的电脑内存不能够存储下这么多的数据,只能取得小数点后面的多少位数值。误差因此才生。
计算数:3.141592663589326 记为m
真 值:3.141592653589793 记为M
误差 = (m-M) = 9.999532757376528e-09
附上公式推导过程
这个误差如何解决啊??????