Details

Open Watcom is a C/C++ compiler, and offers a Linear Congruential Generator in its standard library.

Because this is mainly a DOS compiler, it also masks the result so that only the last 15 bits are returned.

Pseudocode

// This code is adapted from the Open Watcom
// source code found here:
//
// https://github.com/open-watcom/open-watcom-v2

// The current state value
state = 1138;

// Our constants
a = 1103515245;
c = 12345;

// random number generator
function RandomNumber() {

	// Run the function
	state = (a * state) + c;

	// Return the new value
	return (state SHIFT_RIGHT 16) AND $7FFF;

}
			


Test Results

Period Length Test

SeedPeriod LengthResult
113864000Passed
6553564000Passed
867530964000Passed
1677721664000Passed
12345678964000Passed
Minimum to Pass: 64,000

Plot Test

 

Count the 1s Test

Seed% Bits that are 1sResult
113849.88%Passed
6553549.81%Passed
867530949.91%Passed
1677721649.93%Passed
12345678950.02%Passed
Minimum to Pass: 45%

Dartboard Test

SeedDarts PlacedResult
11386939Passed
655357017Passed
167772167004Passed
1234567896995Passed
Minimum to Pass: 2,600

Crush Test

SeedCompression RateResult
1138101.14%Passed
65535101.14%Passed
8675309101.14%Passed
16777216101.14%Passed
123456789101.14%Passed
Minimum to Pass: 95%

Unique Bytes Test

SeedUnique High BytesUnique Low BytesResult
1138162157Failed
65535170162Passed
8675309167161Passed
16777216160161Passed
123456789154167Failed
Minimum to Pass: 160

High/Low Byte Test

SeedHigh After HighHigh After LowLow After HighLow After LowSpreadResult
11382448254825482455193Passed
655352420252625252528159Passed
86753092679248124812358359Passed
16777216254524872487248091Passed
1234567892517253025292423153Passed
Maximum to Pass: 500

Distribution Test

Seed113865535867530916777216123456789
0.0 to 0.1100596510481025961
0.1 to 0.2989970106810341055
0.2 to 0.3103210189881025991
0.3 to 0.49291004105110421029
0.4 to 0.5104199010069061012
0.5 to 0.697810139651042965
0.6 to 0.79899959999971018
0.7 to 0.899610219459161042
0.8 to 0.9104110179641039976
0.9 to 1.010011008967971952
Spread239161345417311
ResultPassedPassedPassedPassedPassed
Maximum to Pass: 500

Sample Output

27621311904551827619261157319028278208417366
53936454319942238127210106983103716096298563599
212102226012217107271643923126195169171817313948
22919271241936621049240861701835308739273415088
746598932977323279498312259209125707915849
29290617310630161451580920328105325905586125516
25668184002482689781423023381278086462103136878
125802023020243193692775318930266214213219091907
485233812009128644436710345163313206627211596
306745221075064941765214742590226015422121974


A WFTID Website