Пятница, 26.04.2024, 01:29
Блог учителя информатики и математики
О блогеМой профильРегистрацияВыходВход
Вы вошли как Гость · Группа "Гости" Приветствую Вас, Гость · RSS
Меню блога
Погода в нашем районе.

НАГРАДА

Как Вы считаете, должны ли дети ходить в школу в школьной форме?
Всего ответов: 2806
 
 Блог учителя
Главная » Статьи » Информатика » В помощь ученику

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

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

Как создаются случайные числа?

Специально для выполнения данной задачи , в языке pascal существует функция random().
Как работает random()?

Эта функция возвращает случайное число от 0 до того числа , которое находится в скобках. 

random(10) 

Например нам нужно получить любое число от 0 до 9 , тогда функция random() будет выглядеть так : 
Случайные числа от 0 до 9

Проще говоря , функция random() возвращает столько случайных чисел сколько написано в скобках , начиная с 0. То есть , если в скобках написано число 10 , то функция возвращает любое из 10 чисел от 0 до 9. 

Но что если нам нужны числа от -15 до 15 ?

Для этого нам понадобится дополнить данную функцию . 

Теперь мы будем заносить значение в переменную . Для того , чтобы занести в переменную X любое число от -15 до +15  : 

 x:= random(26)-15

Программа:

program mypascal; 
uses 
crt; 
var 
x:integer; 
begin 

  randomize;
  x:= random(21)-10; 
  writeln(x); 

end.

Ещё пример, чтобы получить случайное число от -100 до 100 достаточно записать такое выражение: random (200) – 100. В результате, сначала будет получено число из диапазона [0, 199], а затем из него будет вычтена сотня. И если случайное число было меньше 100, то результат выражения будет отрицательным.

В примере программы сначала с помощью процедуры randomize инициализируется датчик случайных чисел. Далее переменной n присваивается случайное значение в диапазоне [5, 12). Значение переменной n используется для определения количества итераций цикла for. В цикле for генерируются случайные числа в диапазоне [0, 50) и выводятся на экран.

var n, i, x: integer;
 
begin
    randomize;
 
    n := random (7) + 5;
 
    for i := 1 to n do begin
        x := random (101) - 50;
        write (x:5)
    end;
 
readln
end.

Чтобы понять как это работает , нужно понять какое минимально число можно получить в random(100). Минимально число 0 , а максимальное 99. Но при любом числе из него будут вычитать 50. Проще говоря , минимальное число будет 0-50 ( -50 ) ,а максимальное 100-50 (50 ). 
А значит любое число в промежутке от -50 до 50.

Заметьте , что для использования функции random() нам понадобится подключить дополнительный модуль crt. Модуль crt подключается так : uses crt; 

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

 

Категория: В помощь ученику | Добавил: Harchev (12.10.2015)
Просмотров: 7162 | Комментарии: 1 | Рейтинг: 3.9/28
Всего комментариев: 0
Имя *:
Email *:
Код *:
Copyright MyCorp © 2024
Блог учителя Учительский портал