def wallis(n):
pi = 0.0
for i in range(n):
left = (2 * i)/(2 * i - 1)
right = (2 * i)/(2 * i + 1)
total = left * right
pi = pi + total
return pi
print wallis(1000)
print wallis(10000)
print wallis(100000)
Я скопировал формулу точно, но я продолжаю получать 0 в качестве вывода. Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно. Python 2.7.Формула Уоллиса для pi
Ссылка на формуле here
В Python 2.7, 2/3 является целым числом фактор, таким образом, 0. Вы должны сделать поплавок (2)/3 или 2/поплавок (3), так что в по меньшей мере один операнд - это float, чтобы получить коэффициент float. Опасайтесь: в Python 3, 2/3 - результат поплавка, вам нужно написать 2 // 3, чтобы получить целочисленное частное. –
Не нужно вычислять. Согласно [Indiana Pi bill] (http://en.wikipedia.org/wiki/Indiana_Pi_Bill), это 3.2. И это O (1), чтобы вычислить! –