Руководство по Ada (Ada 2022)
G.2.5 Требования к производительности генерации случайных чисел
В строгом режиме производительность Numerics.Float_Random и Numerics.Discrete_Random должна соответствовать указанным здесь требованиям.
Требования к реализации
Два различных вызова процедуры Reset, зависящей от времени, должны сбросить генератор в различные состояния, при условии, что вызовы разделены во времени не менее чем на одну секунду и не более чем на пятьдесят лет.
Реализации состояний генератора и алгоритмы генерации случайных чисел должны обеспечивать период не менее 231–2; значительно более длинные периоды желательны, но не обязательны.
Реализации Numerics.Float_Random.Random и Numerics.Discrete_Random.Random должны пройти не менее 85% отдельных испытаний в наборе статистических тестов. Для Numerics.Float_Random тесты применяются непосредственно к сгенерированным значениям с плавающей запятой (то есть они не преобразуются в целые числа сначала), а для Numerics.Discrete_Random они применяются к сгенерированным значениям различных дискретных типов. Каждый набор тестов выполняет 6 различных тестов, каждый из которых повторяется 10 раз, что дает в общей сложности 60 отдельных испытаний. Отдельное испытание считается пройденным, если значение хи-квадрат (или другая статистика), рассчитанное для наблюдаемых подсчетов или распределения, попадает в диапазон значений, соответствующих 2,5 и 97,5 процентилям для соответствующих степеней свободы (то есть оно должно быть ни слишком высоким, ни слишком низким). Для определения степеней свободы категории измерения объединяются всякий раз, когда ожидаемые подсчеты меньше 5.