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

Функция RandG ( Mean, StdDev: Extended ): Extended;
Модуль: Math
Описание
Функция генерирует случайное число с отклонением по Гауссу от среднего значения Mean. Наибольшая часть возвращаемых значений будет лежать в диапазоне Mean-StdDev … Mean+StdDev.
Пример
{codecitation class="brush: pascal; gutter: false;" width="500px"}var
X: Real;
begin

Randomize;
X:= RandG( 100, 10 ); { 90<=X<=110 }

end; {/codecitation}
 


Функция Random [( Range: Integer );
Модуль: System
Описание
Функция генерирует случайное целое число в заданном диапазоне [0…Range).
Параметр Range является необязательным. Если данный параметр опущен, то функция возвращает число действительного типа в диапазоне [0…1).
Генератор случайных чисел инициализируется процедурой Randomize. Если не производить инициализацию, то при каждом запуске программы, функция Random будет возвращать одну и ту же последовательность чисел. Если необходимо сгенерировать определенную последовательность, то для этого нужно присвоить системной переменной RandSeed: LongInt конкретное значение. При этом следует помнить, что в разных версиях компилятора используются различные алгоритмы генерирования последовательностей значений. По этому не рекомендуется использовать функцию Random для шифровки-дешифровки данных (т.е. когда необходимо генерировать одинаковые псевдослучайные последовательности чисел).
Пример
{codecitation class="brush: pascal; gutter: false;" width="500px"}var
X: Real;
begin

Randomize;
X:= Random; { 0<=X<1 }

end; {/codecitation}
 


Процедура Randomize;
Модуль: System
Описание
Процедура инициализирует генерацию случайных чисел со случайного значения, используя текущее значение системного времени.
Если не инициализировать генератор случайных чисел с помощью данной процедуры, то при каждом запуске программы будет генерироваться одна и та же последовательность чисел. Для генерации определенной последовательности, необходимо системной переменной RandSeed: LongInt присвоить конкретное значение.
Пример
{codecitation class="brush: pascal; gutter: false;" width="500px"}var
i: Integer;
begin

Randomize;
for i:= 1 to 100 do
Canvas.TextOut( Random(Width), Random(Height), ‘*’ );

end;  {/codecitation}

Добавить комментарий