XLPack 7.0
XLPack Numerical Library (Excel VBA) 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
Function Erand48(Xseed() As Integer) As Double
48 bit real random number in [0,1) (Linear congruential method)
Sub Seed48(Xseed() As Integer)
Initialization with 48-bit seed for drand48, lrand48 and mrand48 (Linear congruential method)
Function Drand48() As Double
48 bit real random number in [0,1) (Linear congruential method)
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