假設我們有幾個陣列(在我的情況下,三個:a1
,a2
,a3
)。我們還有一組隨機均勻分佈的數字,r
。它們的長度都一樣。我需要建立合併的那些陣列a
三個初始a1
,a2
,a3
使得如果r[i]
滿足特定條件1,我們取a1[i]
如a[i]
,如果滿足條件2,我們採取a2[i]
,和a3[i]
與條件3.三個條件是相互排斥的。建立一個數組。 Monte-Carlo方法
我寫了一個for循環此:
a = empty(len(r))
for i in range(len(r)):
if r[i] <= p1:
a[i] = a1[i]
if p1 < r[i] <= (p1 + p2):
a[i] = a2[i]
if r[i] > (p1 + p2):
a[i] = a3[i]
這裏條件1,2,3後每個 「if ...
」 表示。給予號碼p1
和p2
。這是蒙特卡洛模擬的一部分(陣列a1
,a2
和a3
也是具有給定分佈的隨機數)。 它太慢了,我需要以某種方式對它進行矢量化,但不知道如何去做。哪種方法最好? 非常感謝!
如果能滿意地解決您的問題,請考慮將答案標記爲「已接受」。 – askewchan