народ подскажите мне про функции дельфи
Random
RandomRange
RandSeed
Randomize
Я так понимаю что Random (любое число) всегда при первом вызове равен 0,
как зделать так чтоб было другое число???
Cucumber
23.10.2007, 01:55
procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
x : integer;
begin
// 0 <= x < 10
x := random(10);
// 5 <= x < 15
x := 5+ random(10);
end;
dmitry501
23.10.2007, 03:44
Из справки по Дельфи
Random [( Range: Integer)]: real Возвращает случайные числа X в диапазоне 0 <= X < Range, а если Range не задан, то в диапазоне 0 <= X < 1.Для инициализации начального значения генератора, надо вызвать Randomize или задать значение переменной RandSeed.
Randomize Задает случайное начальное значение для функции Random.
Random-Функция
Генерирует последовательность целых или действительных случайных чисел
Модуль System
Объявление
function Random (Range: Integer);
Описание
Функция Random генерирует последовательность целых или действительных случайных чисел. Парметр Range не является обязательным. Если этот параметр не задан, то функция возвращает случайные действительные числа X, равномерно распределенные в интервале 0 <= X < 1. Например, оператор
for i:=Low(A) to High(A) do
A[i] := Random;
заполняет массив A равномерно распределенными действительными числами в диапазоне от 0 до 1. Если вам требуются действительные случайные числа X, равномерно распределенные в каком-то другом диапазоне A1 <= X < A2, то такие действительные числа легко получить, сдвинув начальное значение чисел и умножив генерируемые числа на длину интервала. Например, операторы
A1, A2: double;
...
A1 := 50;
A2 := 150;
for i:=Low(A) to High(A) do
A[i] := A1 + (A2 - A1) * Random;
обеспечивают заполнение массива действительными случайными числами X, лежащими в диапазоне 50 <= X < 150.
Если в функции Random задан параметр Range, то функция возвращает случайные целые числа в диапазоне 0 <= X < Range. Например, оператор
for i:=Low(M) to High(M) do
M[i] := Random(101);
заполняет массив M целыми числами, равномерно распределенными в диапазоне от 0 до 100. А оператор
for i:=Low(M) to High(M) do
M[i] := 100 + Random(101);
заполняет массив M целыми числами, равномерно распределенными в диапазоне от 100 до 200.
Для рандомизации генератора Random используется процедура Randomize.
Randomize - процедура
Рандомизирует генераторы случайных чисел
Модуль System
Объявление
procedure Randomize;
Описание
Процедура Randomize рандомизирует функции генерации случайных чисел Random и RandG. Если не использовать процедуру Randomize, то при каждом запуске на выполнение функции Random и RandG будут генерировать одинаковые последовательности квазислучайных чисел. Если же вставить в код процедуру Randomize, например, в событии OnCreate формы, то при каждом запуске последовательности случайных чисел будут разными.
RandG - функция
Генерирует последовательность случайных чисел, распределенных по нормальному закону.
Модуль System
Объявление
function RandG(Mean, StdDev: Extended): Extended;
Описание
Функция RandG генерирует квазислучайные действительные числа, распределенные по нормальному закону (закону Гаусса) с математическим ожиданием Mean и средним квадратическим отклонением StdDev. Например, оператор
for i:=Low(A) to High(A) do
A[i] := RandG(10,1);
заполняет массив A случайными числами, распределенными по нормальному закону с математическим ожиданием 10 и средним квадратическим отклоненим 1.
Для рандомизации генератора RandG используется процедура Randomize.
Надеюсь никто не против что я хелп запостил?
vBulletin® v3.6.11, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot