|
|
◆ RanfArray()
| Sub RanfArray |
( |
AA() As |
Double, |
|
|
N As |
Long |
|
) |
| |
区間[0,1)の53ビット実数乱数列 (ラグ付きフィボナッチ法)
- 目的
- ラグ付きフィボナッチ法により[0,1)の53ビット実数乱数列を生成する.
- 引数
-
| [out] | AA() | 配列 AA(LAA - 1) (LAA >= N)
生成された[0,1)の53ビット実数乱数列. |
| [in] | N | 生成する乱数の個数. (N >= 100)
N < 100 の場合, 乱数生成を行わない. |
- 注
- Nの値は最低100である. 例えば1009個を生成して最初の100個だけを使用することが推奨される. 通常は, これらのことを自動的に行うRanfArrNextを使用せよ.
- 出典
- D. E. Knuth, “The Art of Computer Programming Third Edition, Vol.2 / Seminumerical Algorithms”, Addison Wesley Longman (1998)
- 使用例
- 53ビット実数乱数を10個生成する. 1009個を生成して最初の10個を使用した.
Sub Ex_RanfArray()
Const N = 1009, Seed = 314159
Dim AA(N - 1) As Double, I As Long
For I = 0 To 9
Debug.Print AA(I)
Next
End Sub
Sub RanfStart(Seed As Long) 実数乱数生成ルーチンの初期化 (ラグ付きフィボナッチ法)
Sub RanfArray(AA() As Double, N As Long) 区間[0,1)の53ビット実数乱数列 (ラグ付きフィボナッチ法)
- 実行結果
0.524684800201494
0.726548552471813
0.9609049752137
0.889272805173326
0.227826029210785
0.174781467409852
0.721634836341662
0.305582896514576
0.23246372865035
0.265391103319004
|