Нет стандартной функции Delphi RTL, которая будет генерировать матрицу или любую другую коллекцию случайных чисел.
Существует, однако, функция Random
, которую вы используете для создания единственного случайного числа. Вам просто нужно вызывать это столько раз, сколько необходимо для генерации чисел для инициализации любой коллекции случайных чисел, в которой вы нуждаетесь.
В Delphi матрица 5x5 может быть представлена в ряде способов, один из которых может быть простой 2 одномерный массив, который может быть инициализируется в простом цикле:
var
x, y: Integer;
r: array[0..4, 0..4] of Double;
begin
for x := 0 to 4 do
for y := 0 to 4 do
r[x][y] := Random;
// etc to work with the matrix (array)...
end;
Как и в большинстве языков программирования/время выполнения, по умолчанию это будет производить ту же последовательность случайных чисел каждый раз, когда вы запускаете программу. Чтобы изменить «семя» и получить другую последовательность, вы можете либо позвонить Randomize
, либо установить переменную RandSeed
(вы получите ту же последовательность цифр для заданного значения RandSeed
).
Функция Random
возвращает случайное значение между 0.0 и 1.0, отобранное из равномерного распределения.
Генератор псевдослучайных чисел (PRNG), используемый Delphi, представляет собой простой линейный конгруэнтный генератор, очень простой и не имеющий очень хороших свойств в качестве PRNG. Matlab использует намного лучший PRNG, его по умолчанию - Mersenne Twister. Если для вас важно качество псевдослучайных чисел, вам нужно будет выбрать конкретный алгоритм и либо реализовать его самостоятельно, либо найти в подходящей библиотеке, которой много.
Распределение равномерно, но это не очень хороший PRNG. Matlab не производит и не сохраняет значения, округленные до 4dp. Вот как они отображаются. Мое редактирование пытается прояснить все это. –