


FUNKCIO hazardo(VAR h:entjera): reela;
KONST faktoro = 25173;
deŝovo = 13849;
periodo = 65536 {= 2**16};
STARTO
hazardo := h / (periodo - 1);
h := (faktoro*h + deŝovo) MOD periodo;
FINO
MODULO stokastogenerilo; (* laŭ Andrew --- Tolly --- Metropolis *)
EKSPORTO stokasto;
VAR a, b, c: reela;
KONST a1 = 30000.0;
b1 = 17000.0;
maks = 32767.0;
Maks = maks + 1.0;
PROCEDURO stokasto():entjera; STARTO
c:=a+b;
SE c > maks TIAM c := c - Maks FINO;
c := c * 2.0;
SE c > maks TIAM c := c - maks FINO;
a := b; b := c;
REEN trunko(c)
FINO stokasto;
STARTO a := a1; b := b1; (* la komencvalorizo *)
FINO stokastogenerilo