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