我们如何在浮点数(在delphi xe3中)的范围之间生成随机数?
例如,将 之间的数字随机化[0.10 to 0.90]
。我需要给出如下结果:
[ 0.20 , 0.32 , 0.10 , 0.50 ]
感谢您的解决方案....
我们如何在浮点数(在delphi xe3中)的范围之间生成随机数?
例如,将 之间的数字随机化[0.10 to 0.90]
。我需要给出如下结果:
[ 0.20 , 0.32 , 0.10 , 0.50 ]
感谢您的解决方案....
另一种选择是使用RandomRange
(returns: AFrom <= r < ATo
) 如下:
RandomRange(10, 90 + 1) / 100
或者
RandomRange(10, 90 + 1) * 0.01
将返回 0.10 到 0.90 范围内的数字(包括 0.90)
var
float : Double;
float := Random; // Random float in range: 0 <= float < 1
float := 0.1 + float*0.8 // 0.1 <= float < 0.9
要初始化随机数生成器,请在第一次调用函数之前进行一次调用Randomize
或设置RandSeed
参数Random
。
不这样做,每次运行程序时都会生成相同的序列。但是请注意,在为另一个编译器版本重新编译时,不能保证此顺序。
试试这个:
function RandomRangeF(min, max: single): single;
begin
result := min + Random * (max - min);
end;
这有点厚颜无耻,但这里有:取决于浮点数之后你想要多少个数字。例如,如果您想要 1 个数字,您可以在 100 - 999 范围内生成然后除以 10。或者 1000 - 9999 然后除以 100。