from random import uniform
prob = [0.25,0.30,0.45]
def onetrial(prob):
u=uniform(0,1)
if 0 < u <= prob[0]:
return 11
if prob[0] < u <= prob[0]+prob[1]:
return 23
if prob[0]+prob[1] < u <= prob[0]+prob[1]+prob[2]:
return 39
print onetrial(prob)
我不知道如何使用一些for-loop技術來減少def中的重複部分。謝謝。For循環,在Python中重複計算
看起來像一些類型的輪盤選擇..我不認爲代碼是不清楚,將'prob'變得更大或變化?我只是很好奇這個動機 - 謝謝 – Levon
你不需要測試'<'部分(由前面的if處理)。 –
如果您假設概率總和爲1.0,則可以完全跳過最後一個「if」。如果四捨五入會導致錯過最後一個條件並結束該函數,這樣做也會更安全。 –