3月14日 Pi Day 找寻圆周率的奥秘

2022-03-17  本文已影响0人  Python_Camp

正方形的格子内,均匀地播撒沙子,例如10000颗沙子均匀铺满后,以一个顶点为圆心,以正方形边长为半径,则画出一个四分之一的圆如下

image.png

统计四分之一圆内的沙子数量,就可以推导出圆周率pi

增加沙子的数量到50000会是怎样?
先看代码


import matplotlib.pyplot as plt
import random
targ = []
in_circle = 0
xs, ys , ins = [],[],[]
for i in range(40000):
    x = random.random()
    y = random.random()
    radius = (x**2 + y**2) **.5
    if radius <= 1:
        in_circle += 1
        ins.append(1)
    else:
        ins.append(0)
    xs.append(x)
    ys.append(y)
    targ.append(4*in_circle/len(xs))
    
fig, axs = plt.subplots(ncols=2,figsize = (8,4))
axs[0].scatter(xs,ys,alpha=.01,c=ins)
axs[1].plot(targ)
axs[1].set_ylim(3.12, 3.18)
image.png

四分之一圆颜色更加丰满,圆周率的统计值经过上下起伏幅度大,逐渐收敛到3.14附近

上一篇 下一篇

猜你喜欢

热点阅读