Оператор random - генератор случайных чисел

Оператор random — генератор случайных чисел

Часто в задачах требуется выполнить различные действия с большим количеством чисел. В таких случаях вводить все числа становится просто неудобно и долго. Для этого в Паскале придуман генератор случайных чисел — оператор random.

От программиста лишь требуется задать числовые промежутки ( например от 2 до 50 ), все остальное программа выполнит сама. Итак как добавить к коду программы оператор random.

Для начала необходимо предварительно описать оператор (то есть фактически мы сообщаем программе, что будет использован генератор случайных чисел). Для этого необходимо ввести оператор randomize в промежутке после begin и до random (обычно оператор randomize ставят сразу после begin, так как это упрощает чтение кода). Затем идет присвоение оператора random к выбранной переменной. Делается это так:
Для Turbo Pascal

оператор:= random (max-min+1)+min;

  • оператор — любая переменная
  • min — целое число , не превышающее max
  • max — целое число, большее min

Здесь min и max являются диапазонами генератора случайных чисел. Теперь для наглядности пример генератора случайных чисел от 2 до 5 .

var x:integer;
begin
randomize;
x :=random (4)+2;
end;

Здесь 4 — это результат выражения 5-2+1.

Для Pascal ABC

Здесь можно применять оператор random так же как и для Turbo Pascal, однако есть еще один вариант, более простой в использовании.

оператор:= random (min,max);

  • оператор — любая переменная
  • min — целое число, не превышающее max
  • max — целое число, большее min

Чтобы разница лучше просматривалась решим тот же пример генератора случайных чисел от 2 до 5 этим способом.

var x:integer;
begin
randomize;
x :=random (2,5);
end;

Как уже стало заметно второй способ гораздо проще, однако его можно использовать только в Pascal ABC. А для тех, кого интересует код программы, где используется рандом без повтора генерируемых чисел я написал этот пост. В нем при генерации каждого числа происходит сравнение с предыдущем числом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *