在一開始介紹的最佳化模型,最重要的是求解的方法,因為有許多的最佳化問題非常難求出解析解。而在第二部分提到的動態模型,雖然解析穩態行為,但是對於時變行為則需透過模擬的方式來求解。機率模型則較為複雜,多數的情況下
都需要靠模擬的方式才能求得其解,在這就介紹其中一種方法,蒙地卡羅法。
根據氣象預報,這周每天的降雨概率是50%,試問連續3天都下雨的機率是多少
import random
def rainydaysimulation(p):
C = 0
Y = 0
for i in range(7):
if random.random() < p:
C+=1
else:
C = 0
if C >= 3:
Y = 1
return Y
probs = [0.3, 0.4, 0.5, 0.6, 0.7, 0.8]
trails = 100
S = []
for p in probs:
cnt = 0
for i in range(trails):
Y = rainydaysimulation(p)
cnt += Y
S.append(cnt)
print(S)
終於堅持到這一天,之前一直看這各位高手的分享、教學文,沒想到自己也可上面留下學習的足跡。看著各位參賽者的文章滿滿的技術,再回頭看看自己的內容,覺得自嘆不如、濫芋充數。然而,在這過程中還是得到了很多,有著連續PO文的外力,讓我漸漸養成固定的學習時間、想要分享更高品質的文章。這一次的系列文仍有許多需要補充的內容,之後會陸續補上。這30天不是結束,而是開始,透過鐵人賽督促自己持續學習與進步,提升自我能力分享更具價值的技術文。