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))
- 运行结果
蒙特卡罗方法
蒙特卡罗方法也成统计模拟方法,是指使用随机数(或者更常见的伪随机数)来解决很多计算问题的方法。他的工作原理就是两件事:不断抽样、逐渐逼近。
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左右