在浮点范围内生成随机数

时间:2012-12-06 22:10:01

标签: delphi delphi-xe3

我们如何在Float数字的范围内生成随机数(在delphi xe3中)?

例如,在[0.10 to 0.90]之间随机化数字。 我需要给出如下结果:

[ 0.20 , 0.32 , 0.10 , 0.50 ]

感谢您提供解决方案......

4 个答案:

答案 0 :(得分:5)

另一种选择是使用RandomRange(返回:AFrom <= r < ATo),如下所示:

RandomRange(10, 90 + 1) / 100

RandomRange(10, 90 + 1) * 0.01

将返回0.10到0.90(包括0.90)范围内的数字

答案 1 :(得分:4)

var
  float : Double;

  float := Random;  // Random float in range: 0 <= float < 1
  float := 0.1 + float*0.8 // 0.1 <= float < 0.9

要初始化随机数生成器,请在第一次调用Random函数之前,先调用Randomize或设置RandSeed参数。

不这样做,每次运行程序时都会生成相同的序列。但请注意,重新编译其他编译器版本时无法保证此序列。

答案 2 :(得分:1)

function RandomRangeF(min,max:single):single;
var
  float : single;
begin
  float := Random;
  result := min + float* (max-min);
end;

答案 3 :(得分:-1)

这有点厚颜无耻,但这里是:取决于浮点后您想要多少个数字。例如,如果您想要 1 个数字,您可以在 100 - 999 范围内生成然后除以 10。或者 1000 - 9999 并除以 100。