#delphi
Вопрос:
Кажется, я не могу понять, как определить процентную «вероятность» возврата результата.
Например,
Function roll(Percent:integer):string;
var
I:integer;
Begin
I := Random(Percent);
If I = 25 then
result := 'win'
else
result := 'lose';
End;
Но на самом деле у вас есть бросок(60); у вас 60% шансов на возврат выигрыша. Есть ли какой-нибудь способ этого добиться?
Приношу извинения за вероятное неправильное форматирование и плохой пример того, что я пытаюсь сделать, но любая обратная связь была бы очень признательна.
Комментарии:
1.
if Random < Percent / 100 then Result := 'Win' else Result := 'Lose'
. Пожалуйста, обратите внимание на написание «потерять».2. Кстати, вы сами пробовали анализировать свой код? Когда вы прочитали документацию, вы узнали, что
Random(Percent)
возвращает случайное целое число между0
иPercent - 1
. Так, например, еслиPercent = 10
вы получаете случайное целое число между0
и9
. Теперь случайное целое число между0
и9
никогда не будет равно25
, так что ясно , что вы каждый раз будете проигрывать.3. Я бы, вероятно, использовал что-то вроде
if Random(100) < Percent then result := 'win' else result := 'lose';
того, что0..59
выигрывает и60..99
проигрывает.