有人问圆周率怎么算。纸上没法写。
纸上也就写个大概,毕竟我的大脑不是编译器。
贴代码。
# calc e using taylor series
def my_exp(x,terms=20):
return sum([x**i/math.factorial(i) for i in range(terms)])
print(my_exp(1)) # e = 2.718281828459 ...
# calc pi using 2-dim uniform distribution
N = int(1e6)
l1 = [random.random() for _ in range(N)]
l2 = [random.random() for _ in range(N)]
pi_val = sum([x < 1 for x in [l1[i]**2 + l2[i]**2 for i in range(N)]]) / N * 4
print(pi_val)
# calc pi using fourier series
pi_val2 = math.sqrt(sum([x**-2 for x in range(1,N)])*6)
print(pi_val2)
Done!