2012-12-06 58 views
4

我們如何在浮點數(在delphi xe3)範圍內生成隨機數?在浮點範圍內生成隨機數

例如,隨機數在[0.10 to 0.90]之間。 我需要給類似的結果:

[ 0.20 , 0.32 , 0.10 , 0.50 ]

感謝解決方案....

+1

0.05不在範圍內[0.10..0.90]爲什麼你期望它的結果; o) –

+0

這只是一個印刷錯誤。 ;) – User

+4

接受的答案中的代碼不會達到範圍上限(0.9),這是好的嗎? – mjn

回答

4
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功能。

不這樣做,每次運行程序時都會生成相同的序列。但請注意,重新編譯其他編譯器版本時,不保證此順序。

5

另一種選擇是使用RandomRange(返回:AFrom <= r < ATo)如下:

RandomRange(10, 90 + 1)/100 

RandomRange(10, 90 + 1) * 0.01 

將在0.10的範圍內返回編號,0.90(包括0.90)

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