我想在給定範圍內生成均勻分佈的隨機整數。我正在使用的解釋語言有一個內置快速隨機數生成器,它返回範圍爲0(包含)到1(包含)範圍內的浮點數。不幸的是,這意味着我不能使用standard solution seen in another SO question(當RNG之間返回0(包括數字)到1(不包括)),用於在給定的範圍內產生均勻分佈的隨機整數:在給定範圍內生成均勻隨機偏差
result=Int((highest - lowest + 1) * RNG() + lowest)
唯一明智的方法目前我可以看到,在罕見的情況下,隨機數發生器返回1以請求新的號碼。
但是如果有人知道更好的方法,我很樂意聽到它。
羅布
注意:將現有的隨機數發生器,以這種語言會導致infeasibly緩慢,恐怕這不是一個可行的解決方案的東西。
編輯:鏈接到實際的答案。
你還沒有解釋爲什麼上述解決方案不起作用。如果隨機數發生器是一個很好的隨機數的近似值,那麼它的結果分佈應該是一致的,計算結果也是一樣的。 – Simon 2009-01-15 09:39:49
因爲RNG的範圍是0(包括)到1(包括),所以我們可能以結果=最高+ 1(即在期望範圍外)結束 – RobS 2009-01-15 09:54:59