1 #include <stdlib.h> 2 3 #define MASK 0x7FFFFFFFL 4 #define FRACT (1.0 / (MASK + 1.0)) 5 6 extern long lrand(void); 7 8 double frand(void)9frand(void) 10 { 11 12 return lrand() * FRACT; 13 } 14 nrand(int n)15nrand(int n) 16 { 17 long slop, v; 18 19 slop = MASK % n; 20 do 21 v = lrand(); 22 while(v <= slop); 23 return v % n; 24 } 25