Лекция: Випадкові числа
Розглянемо засоби для отримання «випадкових» чисел. «Випадкові» числа мають широке застосування на практиці, зокрема, при моделюванні фізичних процесів, при створенні комп’ютерних ігор, тощо.
procedure Randomize;
Процедура ініціалізує вбудований генератор випадкових чисел за значеннями, отриманими від системного таймера. Якщо в програмі потрібно використати випадкові числа, достатньо один раз використати цю процедуру на початку програми.
function Random[(R: Word)];
Функція повертає випадкове число.
Якщо параметр R не вказано, то результат – дійсне число X із діапазону [0, 1).
Якщо параметр R вказано (вираз цілого типу), то результат – число типу Word із діапазону [0, R – 1].
Якщо R ≤ 0, то результат рівний нулю.
Типові задачі:
Отримати випадкове дійсне число X [A, B] | X := A + Random*(B – A) |
Отримати випадкове ціле число X [A, B] | X := A + Random(B – A + 1) |
Розглянемо приклад: отримати N випадкових чисел із діапазону [A, B].
В наведеному прикладі використовується оператор i:=i+1, за яким збільшується значення змінної i на одиницю. Є процедури аналогічного призначення, які виконуються ефективніше:
procedure Inc ( Var X [,N ]: LongInt); Збільшує значення змінної X. | procedure Dec ( Var X [,N ]: LongInt); Зменшує значення змінної X. |
Параметр X – змінна впорядкованого типу, N – вираз цілого типу. Значення змінної X збільшується при виконанні процедури Inc (або зменшується при виконанні процедури Dec) на 1 (або на N , якщо параметр N задано). У наведеній нижче таблиці в кожному рядку подано оператори, що дають однакові результати:
Inc(i) | i := i + 1 |
Inc(i, n) | i := i + n |
Dec(i) | i := i – 1 |
Dec(i, n) | i := i – n |