常数π是一个无理数,其值约为3.1415928。π的精确值等于这个无穷和:π=4/1−4/3+4/5−4/7+4/9−4/11+…我们可以通过计算前几个项的和得到π的一个很好的近似值。编写一个函数approxPi(),将浮点值误差作为输入,通过逐项计算前一个和来逼近误差内的常数π,直到当前和与前一个和(少一个项)之间的差不大于误差。函数应该返回新的和。(提示:π1=4/1;π3=4-4/3;π5=4-4/3+4/5。。。πi=πi-2+符号*4/i,其中符号=-1或1) 近似值(0.01)3.146567471829556 近似值(0.0000001)3.1415927035898146 我的密码是
def approxPi(num):
prev=1
current=2
i=1
while current-prev>num:
prev=current
current+= 4-(4/i)
i += 1
return current
这只是给我2虽然,任何建议都会有所帮助。你知道吗
这个实现更习惯于python,更容易理解。你知道吗
这是相当快的,计算400000系列在0.05秒的台式电脑上
代码的更正版本如下
数列的每一个分数的分母是2加上前一个,因此
i += 2
。sign = -sign
用于在序列中交替使用正负号。current -= 2
是从序列中减去2,因为current = 2
是序列的第一个值。最后,需要abs()
来获得误差的绝对值,因为它可以在正误差值和负误差值之间交替。你知道吗相关问题 更多 >
编程相关推荐