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