Stephen K. Park and Keith W. Miller (1988). Random Number Generators: Good Ones Are Hard To Find. Communications of the ACM 31 (10): 1192—1201[4]Архивная копия от 4 апреля 2019 на Wayback Machine
The GNU C library’s rand() in stdlib.h uses a simple (single state) linear congruential generator only in case that the state is declared as 8 bytes. If the state is larger (an array), the generator becomes an additive feedback generator and the period increases. See the simplified codeАрхивная копия от 2 февраля 2015 на Wayback Machine that reproduces the random sequence from this library.
In spite of documentation on MSDNАрхивная копия от 8 марта 2016 на Wayback Machine, RtlUniform uses LCG, and not Lehmer’s algorithm, implementations before Windows Vista are flawed, because the result of multiplication is cut to 32 bits, before modulo is applied
T.E. Hull and A.R. Dobell «Random Number Generators»,SIAM Review 4-3(1962),230-254 [3]Архивная копия от 24 декабря 2013 на Wayback Machine
Stephen K. Park and Keith W. Miller (1988). Random Number Generators: Good Ones Are Hard To Find. Communications of the ACM 31 (10): 1192—1201[4]Архивная копия от 4 апреля 2019 на Wayback Machine
The GNU C library’s rand() in stdlib.h uses a simple (single state) linear congruential generator only in case that the state is declared as 8 bytes. If the state is larger (an array), the generator becomes an additive feedback generator and the period increases. See the simplified codeАрхивная копия от 2 февраля 2015 на Wayback Machine that reproduces the random sequence from this library.
In spite of documentation on MSDNАрхивная копия от 8 марта 2016 на Wayback Machine, RtlUniform uses LCG, and not Lehmer’s algorithm, implementations before Windows Vista are flawed, because the result of multiplication is cut to 32 bits, before modulo is applied