Как вставить вероятность рандомизации определенного числа в паскаль

В последнее время я пытался написать программу (текстовую игру), но я знаю только некоторые команды и не очень хорошо понимаю каждую команду.

То, что я пытаюсь сделать, это шанс на попадание. Допустим, я хочу, чтобы программа имела

  • 90% шанс выбрать номер 1 (что означает попадание) и
  • 10%, чтобы выбрать номер 0 (что означает пропустить).

Я видел тот же вопрос Здесь, но я не понимаю команды, потому что я никогда ими не пользовался (я говорю о set.seed и sample). Может ли кто-нибудь объяснить мне, как они работают? Есть ли другой способ (более простой для понимания? Я не против, если он потребляет больше ресурсов)


person RoLeagueGamers    schedule 24.11.2014    source источник
comment
Итак, здесь без каких-либо команд: создайте массив из девяти единиц и одного нуля, затем равномерно перетасуйте числа от 1 до 10 и используйте это число в качестве индекса для этого массива. Таким образом, у вас будет 9/10 шансов получить 1 и только 1/10 шансов получить 0.   -  person Eugene Sh.    schedule 24.11.2014
comment
Эй, спасибо за ответ. Это действительно очень помогло мне. Также я мог бы использовать случай, верно? случайный (10); case random of 0:промах 1:попадание 2:попадание . . . 10: хит   -  person RoLeagueGamers    schedule 25.11.2014


Ответы (1)


Не зная, какие «команды» вы знаете, трудно ответить без обобщения.

Если вам нужно выбрать только одно из двух значений, сгенерируйте случайное значение в любом известном вам диапазоне и вычислите разделительную линию на основе вашей вероятности. Итак, для вашего примера, если вы можете сгенерировать значение от 0 до 1, если оно равно ‹= 0,9, нажмите.

Это может быть расширено до нескольких значений путем добавления последовательных вероятностей. Итак, если у вас есть 4 значения на выбор, каждое с вероятностью 25%, вы получите случайное значение от 0 до 1: если оно меньше 0,25, выберите 0, если меньше 0,5, выберите 1, иначе если меньше 0,75, выберите 2, иначе выбрать 3.

person Scott Hunter    schedule 24.11.2014