11.02.2022

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

Функция random для генерации случайного числа

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

Рассмотрим получение случайных чисел:

  • вещественных
  • целых

 Будем использовать среду программирования PascalABC.NET.

Решим также задачу с использованием случайного числа.

Выполним присваивание

a:=random;

a:=random;

При использовании такого выражения и переменной типа integer возникает ошибка.

Делаем вывод

Функция random выдает значение типа real в диапазоне [0; 1)

a:=random;a:=random;

Значит для использования функции random и получения вещественного числа будет использовать переменную типа real.

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

a:=random(10); 


В данном случае будут случайно сгенерированы первые 10 неотрицательных чисел в промежутке от 0 до 9.

a:=random(10);

Чтобы получить целое число из промежутка [a; b], воспользуемся формулой:

a+random(b-a+1)



Пусть нужно получить случайное число из промежутка [-2; 10]


Формула примет такой вид:

 -2 + random(10-(-2)+1) = -2 + random(13)


Если random(13) сгенерирует 0, то будет получена левая граница промежутка -2 + 0 = -2, если random(13) сгенерирует 12, то будет получена правая граница -2+12 = 10.

a:=-2+random(13);

Для получения случайного числа из промежутка также можно  воспользоваться функцией random с двумя аргументами - левой и правой границами промежутка (в среде Free Pascal работать не будет).

a:=random(-2,12);

Задача. Получить 30 случайных чисел из промежутка [-2;12] и вывести их на экран.

Воспользуемся циклом for с счетчиком x от 1 до 30, сгенерируем и выведем на экран 30 случайных чисел.

a:=random(-2,12);

Итоги

Как использовать функцию random для генерации случайного числа

  • Вещественное число

a1:=random*10;

  • Целое число

a2:=random(100);

a3:=random(20,50);

a4:=-40+random(41);

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

Программа получения массива случайных чисел.

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

Отправить комментарий