本质上,我有一个数组A = Array(1, 2, 3, 4, 5)
,我想做的是,Rnd()
根据随机数的值,使用 , 围绕这个循环循环。
基本上从0 Mod 5
得到一个随机数开始。如果随机数小于 0.5 则我0 Mod 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 代码的方式。