Blame


1 b2cfc4e2 2003-09-30 devnull #include <lib9.h>
2 b2cfc4e2 2003-09-30 devnull
3 b2cfc4e2 2003-09-30 devnull #define MASK 0x7fffffffL
4 b2cfc4e2 2003-09-30 devnull
5 b2cfc4e2 2003-09-30 devnull int
6 b2cfc4e2 2003-09-30 devnull nrand(int n)
7 b2cfc4e2 2003-09-30 devnull {
8 b2cfc4e2 2003-09-30 devnull long slop, v;
9 b2cfc4e2 2003-09-30 devnull
10 b2cfc4e2 2003-09-30 devnull if(n < 0)
11 b2cfc4e2 2003-09-30 devnull return n;
12 b2cfc4e2 2003-09-30 devnull slop = MASK % n;
13 b2cfc4e2 2003-09-30 devnull do
14 b2cfc4e2 2003-09-30 devnull v = lrand();
15 b2cfc4e2 2003-09-30 devnull while(v <= slop);
16 b2cfc4e2 2003-09-30 devnull return v % n;
17 b2cfc4e2 2003-09-30 devnull }