На Горох
Информатика, 9 класс

§ 10. Случайные числа

"Информатика (в 2-х частях)", Горячев А.В., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Чернышёва Т.Л., Широков Д.В.

Объяснение темы В оглавлении: § 10. Случайные числа

Кратко о теме

Случайные числа помогают программе моделировать выборы и события, результат которых заранее неизвестен: например, бросок кубика или выбор участника. Обычно их создаёт генератор — алгоритм, который выдаёт последовательность псевдослучайных чисел. Она выглядит непредсказуемой, но при одинаковом начальном состоянии повторяется. Чтобы результат подходил задаче, нужно точно задать допустимые значения и понять, каковы шансы каждого из них.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Случайное число — число, появление которого заранее нельзя точно предсказать, хотя известны возможные значения и вероятности их появления. Например, при броске кубика возможны числа от 1 до 6, но заранее неизвестно, какое выпадет. Это понятие нужно, чтобы описывать выбор, для которого нет заранее известного результата.

Генератор случайных чисел — средство программы, которое выдаёт последовательность чисел для моделирования случайных выборов. Программа получает очередное значение и использует его, например, чтобы определить результат виртуального броска. Генератор позволяет повторять подобные действия без ручного выбора каждого результата.

Псевдослучайные числа — числа, получаемые детерминированным алгоритмом, то есть алгоритмом с однозначными правилами: при одинаковых начальных условиях последовательность повторяется, хотя выглядит случайной. Это удобно для компьютерных задач, потому что такой выбор легко выполнять автоматически. Повторяемость также помогает снова получить тот же ход моделирования.

Равномерное распределение — способ выбора, при котором все значения из заданного набора имеют одинаковую вероятность. Если генератор равномерно выбирает число от 1 до 6, шансы каждого числа равны. Такое условие нужно проверять, когда результатам нельзя отдавать предпочтение.

Как это устроено

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

Генератор последовательно вычисляет значения по своему алгоритму и хранит состояние, от которого зависит следующее число. Начальное состояние называют начальным значением, или зерном генератора. Если задать то же зерно и запустить тот же алгоритм, он пройдёт те же шаги и выдаст ту же последовательность. Это не признак поломки: повторяемость полезна, например, чтобы проверить и воспроизвести результат эксперимента.

Чтобы получить целый номер из ограниченного диапазона, сначала перечисляют все подходящие значения и указывают границы. Например, числа от 1 до 6 — это шесть результатов, а не диапазон из шести шагов, начинающийся с нуля. У разных команд генерации верхняя граница может включаться или не включаться, поэтому нужно прочитать, что именно команда считает допустимым. Если граница исключена, результат можно преобразовать или выбрать другую команду так, чтобы ни один нужный номер не потерялся.

Равномерный выбор означает равные шансы, а не заранее установленный порядок результатов. Если для кубика вероятность каждого числа равна, генератор не обязан выдавать 1, 2, 3, 4, 5, 6 по очереди. Несколько одинаковых результатов подряд тоже допустимы: каждый новый выбор не должен «компенсировать» предыдущий. При большом числе повторений частоты часто становятся ближе, но равенство не гарантировано.

Случайное число удобно связать с событием через соответствие между значениями генератора и результатами. Для кубика каждому числу от 1 до 6 соответствует грань, а для выбора участника каждому номеру — один человек. Так можно моделировать и другие события: сначала задать возможные исходы и их вероятности, затем организовать выбор. Если вероятности не одинаковы, простого равномерного выбора может быть недостаточно: значениям нужно сопоставить исходы с учётом их шансов.

Случайные числа и их использование

Понятие или действиеЧто означаетЧто важно учитывать
Случайное числоРезультат, который заранее нельзя точно предсказатьНужно знать возможные значения и вероятности
Генератор случайных чиселПрограммное средство, выдающее числа для моделирования выбораОбычно выдаёт значения по алгоритму
Псевдослучайная последовательностьВыглядит случайной, но строится детерминированноПри одинаковом начальном состоянии может повториться
Равномерный выбор из набораКаждое значение имеет одинаковую вероятностьРавные шансы не гарантируют равного числа результатов
Получение целого числа в заданном диапазонеВыбор одного из допустимых целых чиселПроверьте, включены ли границы диапазона

Сначала найдите в таблице понятие или действие, которое соответствует вашей задаче, а затем сверьте ограничения в последнем столбце. Особенно внимательно проверяйте границы и различайте равные вероятности и равные частоты. Это помогает понять, правильно ли задан выбор ещё до запуска программы.

Разбор задач

Смоделировать один бросок шестигранного кубика: получить целое число от 1 до 6.

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

  1. Записываем множество исходов: 1, 2, 3, 4, 5, 6.
  2. Выбираем генерацию целого числа из диапазона с включёнными границами от 1 до 6.
  3. Полученное значение принимаем за номер выпавшей грани.

Ответ: нужно получить одно равномерно выбранное целое число от 1 до 6 включительно. Например, результат 4 означает, что в модели выпала грань с четырьмя точками. Генератор не обязан выдавать все шесть чисел по очереди.

Случайно выбрать одного из 20 участников, обозначенных номерами от 1 до 20.

Для выбора удобно использовать номера вместо имён: так каждому результату генератора можно сопоставить одного участника. Чтобы выбор был честным, все участники должны иметь одинаковые шансы. Поэтому нельзя пропускать номер 1 или 20 и нельзя присваивать двум участникам один номер.

  1. Проверяем, что участникам присвоены все номера от 1 до 20, каждому ровно один.
  2. Настраиваем генератор на равномерный выбор целого числа от 1 до 20 включительно.
  3. Сопоставляем полученный номер списку участников и объявляем соответствующего человека выбранным.

Ответ: генерируем одно целое число от 1 до 20 и выбираем участника с этим номером. Всего допустимо ровно двадцать результатов, поэтому каждому соответствует один участник. Если команда исключает верхнюю границу, нужно изменить способ генерации, иначе участник номер 20 не сможет быть выбран.

Смоделировать 1000 бросков монеты и определить, сколько раз выпала каждая сторона.

Один бросок монеты имеет два исхода, и при равномерной модели каждый из них выбирается с вероятностью ½. Чтобы получить серию, нужно повторить выбор много раз и вести отдельные счётчики для сторон. Даже когда шансы равны, счётчики после тысячи бросков необязательно покажут ровно по 500.

  1. Создаём два счётчика и сначала присваиваем каждому значение 0.
  2. Тысячу раз выбираем одно из двух значений, каждое из которых соответствует стороне монеты.
  3. После каждого выбора увеличиваем счётчик соответствующей стороны на 1.
  4. В конце выводим значения обоих счётчиков и проверяем, что их сумма равна 1000.

Ответ: результатом моделирования будут две частоты, сумма которых равна 1000. Например, может получиться 512 выпадений одной стороны и 488 другой. Такая разница сама по себе не означает, что программа ошиблась или монета в модели нечестная.

Типичные ошибки

Путают количество возможных значений с верхней границей: диапазон от 1 до 6 содержит шесть чисел, а не семь. Такую ошибку допускают, когда считают только разницу между границами и забывают включить начальное значение. Проверьте себя, перечислив все результаты: их должно быть ровно шесть.

Не проверяют, включена ли верхняя граница в команду генерации. Если команда выдаёт значения от 1 до 6, не включая 6, последняя грань кубика никогда не выпадет. Это легко не заметить, потому что программа всё ещё выдаёт правдоподобные числа. Сверьте правило работы команды и отдельно убедитесь, что крайнее значение действительно возможно.

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

Считают повторение последовательности при одинаковых начальных условиях неисправностью генератора. Причина ошибки — ожидание, что случайность обязательно означает неповторяемость при любых обстоятельствах. Псевдослучайный алгоритм закономерно воспроизводит прежние значения, если начальное состояние то же. Проверьте, совпадают ли условия запуска: если да, повтор результата ожидаем.

Связь с другими темами

Для работы со случайными числами нужно уметь задавать целые числа и диапазоны значений. Важно различать множество возможных результатов и его границы, а также понимать, входят ли границы в диапазон. Ещё пригодятся повторяющиеся действия в алгоритме: с их помощью моделируют серию бросков и подсчитывают результаты.

Случайные числа применяют в компьютерном моделировании, играх и статистических экспериментах. В игре генератор может выбирать случайное событие, а в модели — изображать повторение реального процесса. Подсчёт полученных результатов помогает сравнить наблюдения с ожидаемыми вероятностями.

Что запомнить

  • Генератор выдаёт числа, которые программа использует как случайный выбор.
  • Вычислительный генератор обычно создаёт псевдослучайную последовательность.
  • У одинаковых начальных условий может быть одинаковая последовательность.
  • Перед выбором нужно точно определить множество допустимых значений.
  • При равномерном выборе все значения имеют одинаковую вероятность.
  • Равные вероятности не означают одинаковое число результатов в каждой короткой серии.

Частые вопросы по теме

Почему числа генератора называют псевдослучайными?

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

Может ли случайная последовательность повториться?

Да. Псевдослучайная последовательность повторится, если генератор запустить с тем же начальным состоянием. В случайных экспериментах также могут повторяться отдельные результаты — например, несколько раз подряд может выпасть одна сторона монеты.

Как получить случайное целое число в заданном диапазоне?

Нужно задать все допустимые целые значения и проверить, какие границы включает команда генератора. Например, для чисел от 1 до 6 должны быть доступны ровно шесть значений, включая и 1, и 6.

Почему в серии бросков кубика одно число может выпасть чаще другого?

У каждого числа одинаковая вероятность при каждом броске, но это не заставляет результаты в короткой серии распределяться поровну. Чем больше бросков, тем чаще частоты оказываются близки, но точное равенство не гарантируется.

Где в программе применяют случайные числа?

С их помощью моделируют броски костей и монет, выбирают участников или случайные события в компьютерных играх. Они также нужны в компьютерных моделях и статистических экспериментах.

Спросить по теме параграфа

§ 10. Случайные числа

Учебник

Оглавление →
Предмет
Информатика
Класс
9 класс
Учебник
"Информатика (в 2-х частях)", Горячев А.В., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Чернышёва Т.Л., Широков Д.В.