如圖,刷微博時,看到一個問題,第一個想到的就是用蒙特卡洛方法求解,當時正在練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)