基本上我有一個數組A = Array(1, 2, 3, 4, 5)
我想要做的是,使用Rnd()
,根據隨機數的值繞着這個循環。分段函數和打印結果到單元格VBA
基本上從0 Mod 5
開始得到一個隨機數。如果隨機數小於0.5,那麼我留在0 Mod 5
,但是如果隨機數大於或等於0.5,那麼我移動到1 Mod 5
,然後因爲它傳遞到下一階段'它會再次滾動',所以我通過一個新的隨機數字,看看它是否可以到達2 Mod 5
。
我的目標是運行這10,000次並在電子表格的A列中收集結果,然後繪製散點圖以查看它是如何工作的。
現在,我創建了一個功能
Function looper(R, i)
If R < 0.5 Then
j = i
Else
j = i + 1
End If
If j = i Then
Exit Function
Else
newR = Rnd()
j = looper(newR, j)
End If
End Function
再加上子
Sub loopy()
A = Array(1, 2, 3, 4, 5)
Randomize
R = Rnd()
k = looper(R, 1)
Cells(1, 1).Value = A(k Mod 5)
但是它永遠只返回值1
我敢肯定,我在做什麼根本上是錯誤的,無論是用我的邏輯,還是我試圖將我的邏輯加入VBA代碼。