ref: 311e5280279f8d56983df2abae50d545a24ff290
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; }