|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 701 (0x2bd) Types: TextFile Notes: UNIX file Names: »rand.c«
└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code └─⟦f4b8d8c84⟧ UNIX Filesystem └─⟦this⟧ »libc/gen/rand.c«
/* * Random number generator, of period 2 ^ 32. Returns random numbers (ints) in * the interval [0, 2^15-1]. * The algorithm used is a linear congruential method, where the internal * computation is done in unsigned longs (mod 2^32). The numbers from * this sequence are right shifted 17 bits so that the most random 15 * bits are returned. * All this is from Knuth Vol 2, 2nd ed., ch 3. The choice of multiplier * is made from the table in 3.3.4.E, pp102. */ #define A 1664525L /* Multiplicative generator */ #define C 907633387L /* Additive generator */ static long seed = 1; srand(n) unsigned int n; { seed = n; } rand() { seed = seed * A + C; return ((seed >> 17) & 077777); }