赞
踩
pi = 0
n = 100
for k in range(n) :
# pow(16, k) 表示 16的k次方
pi += 1/pow(16, k)*( \
4/(8*k+1) - 2/(8*k+4) \
-1/(8*k+5) - 1/(8*k+6))
print("圆周率为:{}".format(pi))
空格+\ 在python中可以实现代码断行
# 使用蒙特卡罗方法计算圆周率, 通过随机撒点来估计 # 引入随机数和时间库 from random import random from time import perf_counter # 总共要撒的点数 points = 1000 * 1000 # 撒在圆形内的点数 hits = 0.0 # 记录开始的时间 start = perf_counter() # 用循环生成随机数的方式来模拟撒点的过程 # range 函数是左闭右开的,所以右边要加1 for i in range(1, points+1) : # 随机生成坐标值 x, y = random(), random() # 计算该点到圆心的距离 dis = pow(x ** 2 + y ** 2, 0.5) if dis <= 1.0 : hits = hits + 1 pi = 4 * (hits / points) print("用蒙特卡罗法生成的圆周率为:{}".format(pi)) print("运行时间:{:.6f}s".format(perf_counter() - start))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。