XLPack 6.1
Excel VBA Numerical Library Reference Manual
Loading...
Searching...
No Matches

◆ Erand48()

Function Erand48 ( Xseed() As  Integer)

48 bit real random number in [0,1) (Linear congruential method)

Purpose
Generates 48 bit real random number in [0,1) by linear congruential method.
Returns
Double
Generated 48 bit real random number in [0,1).
Parameters
[in,out]Xseed()Array Xseed(2)
[in] 48-bit (16-bit x 3) seed.
[out] Updated 48-bit (16-bit x 3) seed.
Example Program
Generate 10 real pseudo random numbers in [0, 1). Same random number series are generated by Drand48 initialized by Seed48 and Erand48 with the same seed value in Xseed().
Sub Ex_Erand48()
Dim XSeed(2) As Integer, Seed As Long, I As Integer
Seed = 13
XSeed(0) = &H330E: XSeed(1) = Seed Mod (2 ^ 16): XSeed(2) = Seed / (2 ^ 16)
Call Seed48(XSeed())
Debug.Print "Drand48"
For I = 1 To 10
Debug.Print Drand48()
Next
Debug.Print "Erand48"
For I = 1 To 10
Debug.Print Erand48(XSeed())
Next
End Sub
Example Results
0.49125804875894
0.909578015652613
0.696163968687085
0.922235667562695
0.42372016481848
0.593378755016587
0.1323338794958
0.45044780014458
0.269613809642042
0.820416114584759
0.49125804875894
0.909578015652613
0.696163968687085
0.922235667562695
0.42372016481848
0.593378755016587
0.1323338794958
0.45044780014458
0.269613809642042
0.820416114584759
Function Erand48(Xseed() As Integer) As Double
48 bit real random number in [0,1) (Linear congruential method)
Function Drand48() As Double
48 bit real random number in [0,1) (Linear congruential method)