我必须找到使用莱布尼兹系列之和将pi逼近n个有效数字所需的术语数。我已经找到了pi的总和和近似值,但是我不知道如何开始编写比较两个变量中的sigfigs的函数,或者甚至不知道如何确定给定数字中的sigfigs的数量。任何帮助将不胜感激,谢谢。
sum = 0
for i in range(800001):
int = ((-1)**i) / (2*i+1)
sum += int
print(sum)
pi = sum*4
打印(PI)
答案 0 :(得分:1)
由于这个问题的背景,我怀疑你实际上并不想知道如何检查最不重要的数字,而是知道你的近似时间 足够好 '
当通过计算序列的总和来逼近任何值时,终止计算的最简单方法是改进答案,直到它足够接近,使其平方(或绝对值)与上一项相差小于a预定的容忍度。
执行此操作的一种好方法是检查(而不是使用for
循环)以使用while
循环来检查答案是否与前面的答案不同。
答案 1 :(得分:1)
因子(-1)** i表示系列中的术语具有交替符号。此外,这些术语的大小是单调递减的。这一系列的一个特性是截断系列所引起的误差小于所包含的最小项。