Генерация случайных чисел в программе
💻 Информатика · 8 класс
Генерация случайных чисел в программе
Случайное число — это число, которое программа выбирает непредсказуемо из заданного диапазона. Для их получения используют специальную функцию-генератор. Случайные числа нужны в играх, моделировании, тестах и при создании случайных данных.
Псевдослучайность
Компьютер не может выдать по-настоящему случайное число: он считает по формуле, поэтому числа называют псевдослучайными. Они выглядят случайными, но получаются из начального значения, которое называют «зерном». Для большинства школьных задач этого достаточно.
| Задача | Нужный диапазон |
|---|---|
| Бросок монеты | от 0 до 1 |
| Бросок кубика | от 1 до 6 |
| Случайная оценка | от 2 до 5 |
Ограничение диапазона
Часто генератор выдаёт целое число от нуля до некоторой верхней границы. Чтобы получить число в нужных пределах, используют остаток от деления и сдвиг. Общая схема для диапазона от a до b включительно:
n = a + случайное mod (b − a + 1)
Пример: кубик от 1 до 6
n = 1 + случайное mod 6
случайное mod 6 даёт 0..5,
прибавляем 1 → получаем 1..6
Здесь mod — остаток от деления. Выражение b − a + 1 равно количеству возможных значений в диапазоне.
Зерно генератора
Если задать одно и то же зерно, последовательность чисел повторится. Это полезно для отладки: программа поведёт себя одинаково. Чтобы числа были разными при каждом запуске, зерно часто берут от текущего времени.
| Зерно | Поведение последовательности |
|---|---|
| фиксированное | числа повторяются при каждом запуске |
| от времени | числа разные при каждом запуске |
Пример: случайная оценка
Получим случайную оценку от 2 до 5. В этом диапазоне четыре значения, значит используем остаток от деления на четыре.
a = 2, b = 5
количество значений = 5 − 2 + 1 = 4
оценка = 2 + случайное mod 4
случайное mod 4 даёт 0,1,2,3
прибавляем 2 → получаем 2,3,4,5
Равновероятность
Хороший генератор выдаёт все значения диапазона примерно одинаково часто. Если запустить бросок кубика много раз и подсчитать, сколько выпало каждой грани, числа окажутся близкими. Это свойство используют при моделировании случайных событий.
Моделирование эксперимента
Случайные числа позволяют «проиграть» опыт на компьютере вместо реального. Например, чтобы оценить, как часто при броске монеты выпадает орёл, программа повторяет бросок много раз и подсчитывает результаты.
повторить 1000 раз:
бросок = случайное mod 2 (0 или 1)
если бросок = 1: орлы = орлы + 1
вывести орлы / 1000 ← доля орлов около 0.5
Чем больше повторений, тем ближе доля к ожидаемому значению. Такой приём называют статистическим моделированием и применяют в физике, играх и экономике.
Частая ошибка: забыть «плюс единицу» в b − a + 1. Тогда верхняя граница диапазона никогда не выпадает, и, например, кубик показывает только значения от 1 до 5.
Кратко о главном
- Случайное число выбирается непредсказуемо из диапазона.
- На компьютере числа псевдослучайные — считаются по формуле из зерна.
- Диапазон задают через остаток от деления и сдвиг.
- Количество значений в диапазоне равно
b − a + 1.