我不确定为什么函数在使用python 2.7运行时为n的所有值保持返回4,它在3.6中工作正常。 例如:aproxpi(1)应为2.6666,aproxpi(2)应为3.466666。
x = 1
y = 0
pi = 0
def aproxpi(n):
global x, y, pi
if n <= 0:
if y % 2 == 0:
pi += (float(1 / x))
else:
pi -= (float(1 / x))
x = 1
y = 0
pi2 = pi
pi = 0
return 4 * pi2
n -= 1
if y % 2 == 0:
y += 1
pi += (float(1 / x))
x += 2
else:
y += 1
pi -= (float(1 / x))
x += 2
return aproxpi(n)
答案 0 :(得分:5)
您正在Python 2中运行此程序,默认情况下除法是整数除法。
将此行添加到程序的开头:
from __future__ import division
这将使分工更接近你所期望的。