Перейти к содержанию

Случайные числа, кубики и игры на удачу

Программирование C++ Сложность 1/5

Начало урока

Случайные числа, кубики и игры на удачу

Научите программу бросать кубик и удивлять вас

Главная мысль: компьютер выполняет ваши команды в точности, так как же он может быть "случайным"? Секрет в особой машине чисел, которая выдаёт числа, которые трудно предугадать. В C++ для этого есть современный набор инструментов <random>. Как только вы научитесь получать случайные числа, вы сможете сделать кубики, монетки, перемешивание карт и игры.
К концу урока вы сможете:
  • объяснить, почему программы используют псевдослучайные числа,
  • пользоваться тремя помощниками из <random>: random_device, mt19937 и распределением,
  • задавать зерно один раз и бросать кубик много раз,
  • отображать числа в диапазон, например от 1 до 6,
  • построить генератор бросков кубика и игру "угадай число".

1. Зачем нужны случайные числа?

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

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

Компьютер не может подбросить настоящую монетку. Вместо этого он выполняет хитрую математику, которая выглядит случайной. Такой результат называют псевдослучайным числом: "псевдо" значит "как будто", ведь оно только притворяется по-настоящему случайным.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя