在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中的等效函数是什么?
答案 0 :(得分: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。如果伪随机数的质量对您很重要,那么您需要选择一个特定的算法并自己实现或在合适的库中找到它,其中有很多。