如图,刷微博时,看到一个问题,第一个想到的就是用蒙特卡洛方法求解,当时正在练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)
原文地址:https://www.cnblogs.com/xiyouzhi/p/9600666.html
时间: 2024-10-01 00:29:37