Почему функции rand и lrand48 из glibc годятся только для Тетриса: о случайных числах всерьёз
Функцию rand из стандартной библиотеки языка Си для генерации псевдослучайных чисел, наверное, не ругал только ленивый. В довольно известном докладе Rand considered harmful рассказывалось о проблемах с переносимостью, ограниченным диапазоном, многопоточностью, качеством и т.п. Иногда в учебниках упоминают о том, что алгоритм в rand может быть не очень качественным, иметь проблемы с младшими битами, периодом, прохождением статистических тестов. Но крайне редко можно увидеть разбор конкретных критериев, выявляющих дефекты генераторов. В этой статье я постараюсь наглядно показать не просто отдельные недостатки rand , lrand48 и random из glibc, но их полную непригодность для каких-либо вычислений в принципе. Также вы увидите превосходство поточных шифров над minstd , линейным конгруэнтным генератором из 1980-х, не только в качестве, но и в производительности.
https://habr.com/ru/articles/1005118/
#Генераторы_псевдослучайных_чисел #glibc #си #c++ #математическая_статистика #математическое_моделирование #тестирование_по

