Similar presentations:
Генераторы псевдослучайных чисел АИШ. Структурное программирование на 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, то они сгенерируют
одинаковые последовательности.
• Алгоритм для генерации чисел – Вихрь Мерсенна, основанный на
числах Мерсенна.
Если вы загуглили и все равно не поняли,
как работает этот алгоритм, не
расстраивайтесь – это нормально