当前位置:   article > 正文

使用python计算圆周率的两种方法(公式法和蒙特卡罗法)_8. 用以下两种方法去计算圆周率: (1)公式计算 (2)蒙特卡罗法

8. 用以下两种方法去计算圆周率: (1)公式计算 (2)蒙特卡罗法

方法一:公式法

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))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

空格+\ 在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))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/424045
推荐阅读
相关标签
  

闽ICP备14008679号