HELP

From
Max Alekseyev (2:5015/60)
To
Ianos Gnatiuc
Date
2002-10-08T14:49:10Z
Area
RU.ALGORITHMS
████ OS/2        Hi, Ianos !

Replying to a message of Ianos Gnatiuc to Viktor Karev:

 IG> inline DWORD irand()
 IG> {
 IG>     iholdrand *= 214013;
 IG>     iholdrand += 2531011;
 IG>     return iholdrand;
 IG> }

Где такой irand() используется? В каком-то рантайме или самопальный?

[...]

 IG> кстати, кто может объяснить, почему rand не повторяется пока не
 IG> пройдет через все возможные 32 битные значения?

В Кнута есть такая теорема:

Длина периода линейной конгруэнтной последовательности (т.е. последовательности, вида X = (a*X+c) % m) равна m тогда и только тогда, когда:
1. НОД(c,m) = 1 (т.е. c и m взаимно просты)
2. b=a-1 кратно p для всех простых p - делителей m
3. b кратно 4, если m кратно 4

Regards,      °°
        Max    ~

--- FleetStreet 1.27.3.8
 * Origin:  (2:5015/60)