2.3. Генератор випадкових чисел в Delphi.

 

У мові Delphi, як і в багатьох інших мов високого рівня, існує вбудована підтримка генератора випадкових чисел. Для формування чисел використовується програмний ГВЧ, що існує в програмі в єдиному екземплярі.

У Borland Delphi використовується  конгруентний ГВЧ. Довжина періоду цього ГВЧ складає 232 числа.

Для роботи з ГВЧ в мові Delphi  передбачені наступні функції:

 random() -  генерує випадкове число;

random(x) -  дозволяє генерувати випадкове ціле число в діапазоні [0, x-1];

randomize() - встановлює ГВЧ на слідуюче число;

RandomRange -  генерує довільне число в межах введеного діапазону;

RandSeed - встановлює ГВЧ на слідуюче значення;

RandG - генерує нормально розподілені випадкові числа з заданим середнім значенням і середньоквадратичним відхиленням;

Delphi використовує ГПВЧ, який, кожний раз при виконанні програми повертає одну і ту ж послідовність значень (232). Щоб уникнути цієї передбачуваності використовується процедура  randomize, яка забезпечує ініціалізацію генератора випадкових чисел. Якщо треба згенерувати визначену послідовність, то треба присвоїти системній змінній RandSeed: LongInt конкретне значення.

Генератор не рекомендується використовувати в процесі відладки, так як послідовність, вибрану викликом randomize(), складно відтворити. Крім того, генератор не рекомендується викликати дуже часто або через фіксовані проміжки часу, бо це понизить якість («випадковість») послідовностей, що генеруються.