我正在尝试重建我在Lua中制作的程序。我一直在尝试将其翻译为Python(3.5.0)
该程序旨在允许用户输入一定数量的迭代,然后程序通过它们并显示pi的值。
所以让我们说用户输入1的迭代,程序通过公式(在图片中)并进行数学运算。第一次迭代将是pi = 4/1,这将使pi = 4的值。这是一些迭代的列表及其pi的值:List of Iterations and Pi。
另外,如果你想看到我在这里使用Lua的代码是两个链接Simple Pi Estimation Program而我有另一个更复杂的代码,但它在Python中不起作用。另一个例子,如果用户输入5的迭代,程序将计算pi的值为3.339。
正如我所说,我试图用Python制作它,但我不能这样做。任何建议都会很有意义。这是我写的(最明显的错误):
def estimate_pi( iterations, pi = 0 ):
print("How many iterations?")
iterations = input()
sign = -1.0
for n in range(iterations):
sign = sign*-1 # alternate sign as 1 or -1
pi = pi+4/(n*2-1)*sign # multiply by sign for a + or - answer
print("Pi: ", pi) #print value of Pi
return;
答案 0 :(得分:1)
您的程序 错误。你错过了python的范围0..n-1
。修正和改进:
def estimate_pi( iterations ):
sign,pi = 1,0.0
for n in range(iterations):
pi += 4/(n*2+1)*sign # multiply by sign for a + or - answer
# --- prev line's formula has +1 instead of -1
sign *= -1 # alternate sign as 1 or -1
return pi
print("How many iterations?")
print(estimate_pi(int(input())))