当我们追忆回自己的小学时代,那时候老师刚刚教完了矩形面积求解的方法,但老师布置了一道题目,告诉你求出内切圆的面积同时给你了一把小米。但显然我们对圆面积的求解公式是不会的,我们应该怎么做呢?我们把小米均匀的分布在矩形上,并且数一数圆内小米的数量和全部小米的数量,矩形面积和圆面积得到了如下的比例关系:
N1/N2=S1/S2
这种方法看似很简单,实际上却蕴含着一类很重要的思想,因在著名的摩纳哥的蒙塔卡罗市,被乌拉姆和冯诺依曼两个物理学家作为算法提出,被称为蒙塔卡罗算法,
import random import numpy as np date=[] for i in range (10000): x=random.uniform(0,2) y=random.uniform(0,2) date.append([x,y]) date=np.array(date) size=0 x1=date[0,0] y1=date[0,1] for j in range(0,len(date)): x1=date[j,0] y1=date[j,1] if ((x1-1)**2+(y1-1)**2)**0.5<=1 : size=size+1 ans=(size/10000)*4 print(ans)