蒙特卡洛(Monte Carlo)方法求面积

如图,刷微博时,看到一个问题,第一个想到的就是用蒙特卡洛方法求解,当时正在练python,于是尝试用python编写程序。

 

 1 import random
 2 # 先求s1
 3 k=0
 4 n=100000000
 5 for i in range(n):
 6     x=random.uniform(0,10)
 7     y=random.uniform(0,10)
 8     if ((x-5)**2+(y-5)**2>25) and (y<-2*x+20):
 9         k=k+1
10     else: k=k
11 
12 s1=(k/n)*100
13 
14 #求s2
15 import math
16 s2=(10*10-math.pi*25)/4
17 
18 s=s1+s2
19 print("k=",k)
20 print("s2=",s2)
21 print("s1=",s1)
22 print("s=",s)       

 

posted @ 2018-09-06 20:14  西柚汁  阅读(4156)  评论(0)    收藏  举报