GitHub

Гарифуллин Руслан Ильфатович Вариант 2

Тестирование последовательности случайных чисел

Длина последовательности:

Шаг 1. Генерация случайных чисел
Метод серединных произведений.

Данный алгоритм генерации плохо справляется с генерацией более 800 значений, стремясь и достигая нуля с 828-го значения.

z1 = 8731, z2 = 1617

Шаг 2. Проверка гипотезы о типе распределения
R(0, 1)

Всего k = 10 интервалов, уровень значимости α = 0.05.
H0 - последовательность имеет равномерное распределение R(0, 1) (основная гипотеза).
HA - последовательность не является равномерным распределением (альтернативная гипотеза).

Основная гипотеза отвергается при χ2 > χ9, 0.052 = 16.919 (критическое значение)
При равномерном распределении P(α ⩽ X < β) = (β - α) / (b - a) = 0.1 / 1 = 0.1 = Pj

При данном уровне значимости данный метод генерации проходит тест на равномерную распределенность в интервале (100; 1000).

Шаг 3. Тест перестановок

Всего k = 3! = 6 вариантов перестановок, уровень значимости α = 0.05.
H0 - перестановки возникают равномероятно.
HA - перестановки возникают не равномероятно.

Основная гипотеза отвергается при χ2 > χ5, 0.052 = 11.071 (критическое значение)
При равномерном распределении ожидаемая P(α ⩽ X < β) = (β - α) / (b - a) = (1 / 6) = Pj
Ожидаемая частота: Ej = Pj * 9999 = 1666.5

Судя по эксперименту, тройки чисел до 828-го значения следуют одинаковому паттерну, после чего зануляются и соответственно считаются таковыми тоже. Следовательно, тест на независимость последовательности провален.

Вывод

Данный алгоритм генерации псевдослучайных чисел при данных входных числах показал свою неэффективность при большом количестве значений. Эксперимент также показал, что генерируемая последовательность не независима и равномерно распределена только лишь при небольшом количестве значений.