1

在 Matlab 中这个函数

r = rand(5)

结果:

r =

0.8147    0.0975    0.1576    0.1419    0.6557
0.9058    0.2785    0.9706    0.4218    0.0357
0.1270    0.5469    0.9572    0.9157    0.8491
0.9134    0.9575    0.4854    0.7922    0.9340
0.6324    0.9649    0.8003    0.9595    0.6787

用于生成 0 到 1 之间均匀分布的随机数的 5×5 矩阵。

Delphi中的等效函数是什么?

4

1 回答 1

5

没有标准的 Delphi RTL 函数可以生成矩阵或任何其他随机数集合。

但是Random,您可以使用一个函数来生成单个随机数。您只需根据需要多次调用它来生成数字以初始化您需要的任何随机数集合。

在 Delphi 中,一个 5x5 矩阵可以用多种方式表示,其中一种可能是一个简单的二维数组,可以在一个简单的循环中初始化:

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 之间的随机值,从均匀分布中采样。

Delphi 使用的伪随机数生成器 (PRNG) 是一个简单的线性同余生成器,非常基础,并且不像 PRNG 那样具有非常好的特性。Matlab 使用更好的 PRNG,默认是 Mersenne Twister。如果伪随机数的质量对您很重要,那么您需要选择一个特定的算法并自己实现它或在合适的库中找到它,其中有很多。

于 2016-10-23T06:56:52.263 回答