基本的に、私がA = Array(1, 2, 3, 4, 5)
やりたいことはRnd()
、乱数の値に応じて、このループを一周することです。
基本的0 Mod 5
に乱数を取得することから始めます。乱数が 0.5 未満の場合は にとどまりますが0 Mod 5
、乱数が 0.5 以上の場合は に移動し1 Mod 5
ます。次のステージに渡されるため、「再びロールする」ため、a を渡します。に到達できるかどうかを確認するために、それに新しい乱数を追加し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 コードに入れようとしている方法のいずれかで、何か根本的に間違っていると確信しています。