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

#delphi #random #numbers #range

#delphi #Случайный #числа #диапазон

Вопрос:

Это в Delphi (7, если быть точным). Как я могу генерировать случайные числа в определенном диапазоне? Аналогично random.randint(1,6) в Python. Я пытаюсь имитировать бросание кубиков. Другой вариант — каким-то образом исключить 0.

В настоящее время у меня есть:

 Randomize;
Roll := Random(7);
Label3.Caption := IntToStr(Roll);
 

Комментарии:

1. Тривиально «как-то» исключить ноль. Просто сделайте Random(6) 1 .

Ответ №1:

Вы можете использовать

 RandomRange(1, 7)
 

который вернет случайное целое число из набора {1, 2, 3, 4, 5, 6}.

( uses Math )

[Кстати, тривиально «как-то» исключить ноль. Просто сделай Random(6) 1 .]

Комментарии:

1. Спасибо, но это должен быть RandomRange (1,7), чтобы включить 6.

2. @Aaron: Да, я изменил это несколько минут назад!

Ответ №2:

Кроме того, можно сгенерировать значение из диапазона с плавающей запятой [a, b), исключая b:

 r := random;
x := (b-a)*r   a;
 

Первая строка генерирует значение из интервала [0; 1); вторая строка выдает значение из [a, b) .

Если вы хотите получить N случайных значений в интервале [a; b] (например, 5 случайных значений из интервала [1; 2]: {1, 1.25, 1.5, 1.75, 2}) используйте следующее:

 r := RandomRange(0, N-1);
x := a   r*(b-a)/(N-1);
 

Комментарии:

1. Это должно быть RandomRange(0, N)

Ответ №3:

для определенного значения, которое вы можете использовать

 randomize;
ran:=random(6) 1;
 

это значение будет случайным образом изменяться от 1 до 6