Как получить случайное число в Паскале?

Я хочу, чтобы получить случайное число в Паскале из диапазона. В основном что-то вроде этого:

r = random(100,200);

приведенный выше код будет иметь случайное число от 100 до 200.

какие идеи?

встроенная функция pascal позволяет вам получить число только от 0-вашего диапазона, в то время как мне нужно указать минимальное число для возврата

5 ответов


просто получите случайное число с правильным диапазоном (т. е. от 100 до 200 будет диапазон 100), затем добавьте к нему начальное значение

Так:


Как уже указывалось, вы должны использовать

myrandomnumber := random(span) + basenumber;

однако, чтобы получить более качественные случайные числа, вы должны позвонить

randomize();

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


Не могли бы вы просто объявить начальную переменную и конечную переменную и передать случайные те? например,

var
varMyRandomNumber, x, y := extended;

begin

x := 100;
y := 200;

varMyRandomNumber := random(x,y);
ShowMessage(IntToStr(varMyRandomNumber));
end;

?

здесь хороший пример использования цикла for для установки начального и конечного значений:http://www.freepascal.org/docs-html/rtl/system/random.html


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

чтобы получить случайное число между двумя числами, нужно, это:

Result:=Min+random(10000)mod max + 1;

Я не помню максимальное значение для random, поэтому вы можете изменить его (он ничего не меняет).

С помощью " mod " вы получаете модуль от деления Random и max. +1 необходимо, потому что вы никогда не получите число, которое = max, только число это =max-1, поэтому вам нужно написать +1.

удачи!


вы можете сделать это нравится Int:=Случайный(100); это дает 100 случайных чисел. затем, когда вы его отображаете или используете, просто добавьте 101 к этому целому числу, чтобы его между 100 и 200