oo 求pi近似值"""from random import randomfrom time import perf_counter# # 普通用公式pi = 0N = 100start = perf_counter()for k in range(N): pi += 1 / pow(16, k) * (4 / (8 * _python用公式法求圆周率">
赞
踩
""" pi = sum[1/16^k *( 4/(8k+1)- 2/(8k+4) -1/((8k+5) -1/(8k+6)] k =0 -> oo 求pi近似值 """ from random import random from time import perf_counter # # 普通用公式 pi = 0 N = 100 start = perf_counter() for k in range(N): pi += 1 / pow(16, k) * (4 / (8 * k + 1) - 2 / (8 * k + 4) - 1 / (8 * k + 5) - 1 / (8 * k + 6)) print('公式法:') print("圆周率值是{}".format(pi)) # 圆周率值是3.141592653589793 print("运行时间是: {:.5f}s".format(perf_counter()-start)) # 蒙特卡罗方法的应用场景 DARTS = 1000*1000 hits = 0.0 start = perf_counter() for i in range(1, DARTS+1): x, y = random(), random() dist = pow(x ** 2 + y ** 2, 0.5) if dist <= 1.0: hits = hits + 1 pi = 4 * (hits/DARTS) print('蒙特卡罗法:') print("圆周率值是: {}".format(pi)) print("运行时间是: {:.5f}s".format(perf_counter()-start))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。