ref: 0e54aa2a4df49f9a4fb7f1a275940332d3bee3c6
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; }