14 lines
332 B
Text
14 lines
332 B
Text
var [private] seed = 0;
|
|
fcn srand(s){ seed = s }
|
|
|
|
const TWO31=(1).shiftLeft(31);
|
|
|
|
//#define BSD_RAND 1
|
|
|
|
#ifdef BSD_RAND
|
|
const A=1103515245, C=12345;
|
|
fcn rand{ seed = (seed * A + C) % TWO31 }
|
|
#else // MS rand
|
|
const A=214013, C=2531011, TWO16=(1).shiftLeft(16);
|
|
fcn rand{ (seed = (seed * A + C) % TWO31) / TWO16 }
|
|
#endif
|