ref: 5655f2e28e077e38c64425a61b2394cdfbbe8af8
dir: /sys/src/ape/lib/v/nrand.c/
#include <stdlib.h> #define MASK 0x7FFFFFFFL #define FRACT (1.0 / (MASK + 1.0)) extern long lrand(void); double frand(void) { return lrand() * FRACT; } nrand(int n) { long slop, v; slop = MASK % n; do v = lrand(); while(v <= slop); return v % n; }