题目如下:
这里使用函数random.random()随机产生10000个点,范围为0-1的浮点数。
求π的方法:通过求出四分之一的圆的面积,然后反解出π。
面积的求法:通过 (落在圆中的随机点的数量/总的随机点的数量)乘 正方形的面积)
代码如下
import random
random.seed(180) # 设置随机数种子,也可以不设置
hit = 0
n = 10000 # 总的点数
for i in range(10000):
x,y = random.random(),random.random()
if (x**2 + y**2) < 1: # 检验是否落在半径为1的圆内
hit += 1
print("{:.2f}".format((hit/10000)*4)) # 反向解出π的值
结果:
例二:
代码如下:
import random
hit = 0
random.seed(10)
for x in range(100000):
x,y = random.random(),random.random()
if y<=x**2:
hit += 1
print("{:.3f}".format(hit/100000))