> 文档中心 > random库的使用——附圆周率计算方法(公式&蒙特卡洛)

random库的使用——附圆周率计算方法(公式&蒙特卡洛)

文章目录

  • ✨random库概述
    • ⚽基本随机数函数
    • ⚾扩展随机数函数
    • 🎱圆周率的计算
      • 圆周率的近似计算公式
      • 蒙特卡罗方法

✨random库概述

在这里插入图片描述在这里插入图片描述

⚽基本随机数函数

在这里插入图片描述

在这里插入图片描述

⚾扩展随机数函数

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

🎱圆周率的计算

圆周率的近似计算公式

random库的使用——附圆周率计算方法(公式&蒙特卡洛)

  • code
pi = 0N = 100for 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("圆周率值是: {}".format(pi))
  • 运行结果
    random库的使用——附圆周率计算方法(公式&蒙特卡洛)

蒙特卡罗方法

蒙特卡罗方法也成统计模拟方法,是指使用随机数(或者更常见的伪随机数)来解决很多计算问题的方法。他的工作原理就是两件事:不断抽样、逐渐逼近。
pi = 4 * 落在圆内的概率 = 4 * (圆内点的数量 / 点的总数)

在这里插入图片描述

  • code
from random import randomfrom time import perf_counterDARTS = 1000 * 1000hits = 0.0start = 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 + 1pi = 4 * (hits / DARTS)print("圆周率值是: {}".format(pi))print("运行时间是: {:.5f}s".format(perf_counter() - start))
  • 运行结果

每次运行所得的结果会有所不同,但大致在3.14左右

random库的使用——附圆周率计算方法(公式&蒙特卡洛)
random库的使用——附圆周率计算方法(公式&蒙特卡洛)