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

◆ Drand48()

Function Drand48 ( )

区間 [0,1) の 48 ビット実数乱数 (線形合同法)

目的
線形合同法により [0,1) の 48 ビット実数乱数を生成する.
戻り値
Double
生成された [0,1) の 48 ビット実数乱数.
使用例
[0, 1) の実数の乱数を 10 個生成する. Srand48() を使用して初期化した場合と, 同じシード値を使用して Seed48() で初期化した場合は同じ乱数系列を生成する.
Sub Ex_Drand48()
Dim XSeed(2) As Integer, Seed As Long, I As Integer
Seed = 13
Call Srand48(Seed)
Debug.Print "Initialized by Srand48"
For I = 1 To 10
Debug.Print Drand48()
Next
Seed = 13
XSeed(0) = &H330E: XSeed(1) = Seed Mod (2 ^ 16): XSeed(2) = Seed / (2 ^ 16)
Call Seed48(XSeed())
Debug.Print "Initialized by Seed48"
For I = 1 To 10
Debug.Print Drand48()
Next
End Sub
Sub Srand48(Seed As Long)
Drand48, Lrand48, Mrand48の初期化 (32ビットシード) (線形合同法)
Sub Seed48(Xseed() As Integer)
Drand48, Lrand48, Mrand48の初期化 (48ビットシード) (線形合同法)
Function Drand48() As Double
区間 [0,1) の 48 ビット実数乱数 (線形合同法)
実行結果
Initialized by Srand48
0.49125804875894
0.909578015652613
0.696163968687085
0.922235667562695
0.42372016481848
0.593378755016587
0.1323338794958
0.45044780014458
0.269613809642042
0.820416114584759
Initialized by Seed48
0.49125804875894
0.909578015652613
0.696163968687085
0.922235667562695
0.42372016481848
0.593378755016587
0.1323338794958
0.45044780014458
0.269613809642042
0.820416114584759