Генератор случайных чисел в Pascal

Обложка к статье "Генератор случайных чисел в Pascal" Числа в Pascal

Генерация случайных чисел играет ключевую роль в разработке программного обеспечения. От симуляции случайных событий до шифрования данных, случайные числа используются во множестве приложений. В языке программирования Pascal также существуют инструмент для генерации случайных чисел.

В данном разделе мы рассмотрим принципы работы с генератором случайных чисел в Pascal. Посмотрим как мы можем генерировать случайные вещественные и целые числа (в том числе и отрицательные).

Встроенная функция Random для генерации случайных чисел

В языке программирования Pascal есть встроенная функция для генерации случайных чисел — Random, которая генерирует псевдослучайное число в диапазоне. Для того чтобы использовать Random, необходимо предварительно инициализировать генератор случайных чисел с помощью вызова функции Randomize. Это делается для того, чтобы каждый запуск программы давал различные последовательности случайных чисел.

Пример использования Random:

program RandomExample;

begin
  Randomize; // Инициализация генератора случайных чисел
  writeln('Случайное число:', Random);
end.

Пример вывода программы:

Случайное число:0.458825309508864

Функция Random без аргументов возвращает случайное вещественное число в диапазоне от 0 (включительно) до 1 (исключительно).

Получение случайного целого числа из диапазона целых чисел в Pascal

Чтобы получить случайное число в определенном диапазоне целых чисел, можно использовать выражение Random(MaxValue), где MaxValue — это максимальное значение, которое может принимать случайное число.

Функция Random(MaxValue) генерирует случайное число в диапазоне от 0 до MaxValue - 1, то есть значение MaxValue не включается в диапазон. Например, если вызвать Random(10), это будет случайное число от 0 до 9 включительно.

Рассмотрим пример:

program RandomRangeExample;

begin
  Randomize;
  writeln('Случайное число от 0 до 10:', Random(11)); // Генерация числа от 0 до 10
end.

Обратите внимание, мы указали аргумент 11, чтобы генерировалось число до 10 включительно.

Пример вывода программы:

Случайное число от 1 до 10:10

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

Мы можем увеличить минимальный диапазон генерации числа. Предположим, нам нужно получить случайное число от 1 до 10. В этом случае мы можем внести изменения в код программы из предыдущего примера.

  • Сначала мы уменьшим MaxValue на 1. Теперь наш диапазон генерации числа от 0 до 9 включительно.
  • После того, как сгенерируем число, мы можем прибавить к нему 1. Тогда наш диапазон станет от 1 до 10 включительно.

Пример кода:

program RandomRangeExample;

begin
  Randomize;
  writeln('Случайное число от 1 до 10:', Random(10) + 1); // Генерация числа от 1 до 10
end.

Включение отрицательных чисел в диапазон случайных чисел

Давайте представим, что нам нужно сгенерировать случайное число от -10 до +10. В этом случае мы можем использовать всё тот же подход, что и в предыдущем примере, а именно:

  1. Сгенерировать случайное число в диапазоне от 0 до 20.
  2. Вычесть из этого случайного числа значение 10, чтобы сдвинуть его диапазон от -10 до 10.

Пример:

program RandomRangeExample;

var
  randomValue: integer;

begin
  Randomize;
  randomValue := Random(21) - 10; // Генерация случайного числа от -10 до 10
  writeln('Случайное число от -10 до 10:', randomValue);
end.

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

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

Пример кода:

program RandomRangeUserInput;

var
  min, max, randomValue: integer;

begin
  writeln('Введите минимальное значение диапазона:');
  readln(min);
  writeln('Введите максимальное значение диапазона:');
  readln(max);

  Randomize;
  randomValue := Random(max - min + 1) + min;
  writeln('Случайное число в заданном диапазоне:', randomValue);
end.

Разберём код подробнее:

  1. program RandomRangeUserInput; — начало программы, где определяется ее название.
  2. var min, max, randomValue: integer; — объявление переменных min, max и randomValue типа integer, которые будут использоваться для хранения минимального значения диапазона, максимального значения диапазона и сгенерированного случайного числа соответственно.
  3. begin — начало основной части программы.
  4. writeln('Введите минимальное значение диапазона:'); — вывод на экран сообщения, предлагающего пользователю ввести минимальное значение диапазона.
  5. readln(min); — чтение введенного пользователем значения минимального диапазона и его сохранение в переменную min.
  6. writeln('Введите максимальное значение диапазона:'); — вывод на экран сообщения, предлагающего пользователю ввести максимальное значение диапазона.
  7. readln(max); — чтение введенного пользователем значения максимального диапазона и его сохранение в переменную max.
  8. Randomize; — инициализация генератора случайных чисел.
  9. randomValue := Random(max - min + 1) + min; — генерация случайного числа в диапазоне от min до max. Random(max - min + 1) генерирует случайное число от 0 до max - min, и добавление min сдвигает диапазон от min до max.
  10. writeln('Случайное число в заданном диапазоне:', randomValue); — вывод на экран сгенерированного случайного числа в заданном диапазоне.
  11. end. — конец основной части программы.
Оцените статью
Обучение Pascal
Добавить комментарий