264.44K
Категория: ПрограммированиеПрограммирование

Генераторы псевдослучайных чисел АИШ. Структурное программирование на Python

1.

Как работают
генераторы
псевдослучайных чисел
АИШ, «Структурное программирование на Python»

2.

Случайные числа нужны для:
• Создания игр;
• Шифрования;
• Генерации и хранения паролей;
• Тестирования работы программ при
различных условиях;
• ….

3.

1,2,3,4,5,6 – это случайная последовательность
чисел?
2,9,1,0,7 – а это??
Обе эти последовательности могут
быть как случайными, так и не
случайными.
Случайные числа – это последовательность таких чисел, в которой
невозможно назвать следующее, зная любое количество предыдущих.

4.

Откуда берутся случайные числа?

5.

Источники
Близки к случайным по свойствам,
действительно
однако каждое следующее вычисляется
случайных чисел
на основе предыдущего с помощью
найти сложно
математических методов
Случайные числа
Источниками могут быть
Псевдослучайные числа
физические шумы,
Для генерации
поведение которых сложно
последовательности нужны:
предсказать: космическое
• изначальное число;
излучение, радиация,
• математическая
квантовые эффекты.
формула/алгоритм для
получения следующего числа.

6.

Как оценивают ГПСЧ?
Чтобы оценить качество работы
ГПСЧ, нужно получить большую
последовательность чисел
• Равномерность распределения: вероятность появления каждого
числа в заданном промежутке должна быть одинаковой (или
почти одинаковой).
• Непредсказуемость: невозможно (сложно) предсказать, какое
число окажется следующим.

7.

Модуль random
Если не указать X, то будет
использоваться текущее системное
время
• random.seed(X) – инициализация начального состояния
генератора (самого первого числа).
Если для двух генераторов указать
одинаковый X, то они сгенерируют
одинаковые последовательности.
• Алгоритм для генерации чисел – Вихрь Мерсенна, основанный на
числах Мерсенна.
Если вы загуглили и все равно не поняли,
как работает этот алгоритм, не
расстраивайтесь – это нормально
English     Русский Правила