Initial revision
[LeanCalc.git] / help / randombit
1 NAME
2     randbit - Blum-Blum-Shub pseudo-random number generator
3
4 SYNOPSIS
5     randombit([x])
6
7 TYPES
8     x           integer
9
10     return      integer
11
12 DESCRIPTION
13     If x > 0, randombit(x) returns a pseudo-random integer in [0, 2^x),
14     i.e. the same as rand(2^x).  If the integer returned is
15
16             b_1 * 2^(x-1) + b_2 * 2^(x-2) + ... + b_n,
17
18     where each b_i is 0 or 1, then b_1, b_2, ..., b_n may be
19     considered as a sequence of x random bits.
20
21     If x <= 0, randombit(x) causes the random-number generator to skip
22     abs(x) bits, and returns abs(x).
23
24     If x is omitted, it is assumed to have the value of 1.
25
26     See the random() help page for details on the additive 55 shuffle
27     pseudo-random number generator.
28
29 EXAMPLE
30     > print srandom(0), randombit(20), randombit(20), randombit(20)
31     RANDOM state 523139 567456 693508
32     > print srandom(0), randombit(-20), randombit(20), randombit(-20)
33     RANDOM state 20 567456 20
34
35 LIMITS
36     x != 0
37
38 LINK LIBRARY
39     void zrandom(long cnt, ZVALUE *res)
40
41 SEE ALSO
42     seed, srand, randbit, isrand, rand, srandom, israndom
43