XLPack 7.0
XLPack 数値計算ライブラリ (Excel VBA) リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ 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
Call RanfStart(Seed)
Call RanfArray(AA(), N)
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