0
那麼,int random = (int) Math.ceil(Math.random() * 5);
返回的值是0,1,2,3,4而不是1,2,3,4,5?math.random是否假設0是一個整數?
我試圖測試,但它似乎永遠不會打0或5 = X
那麼,int random = (int) Math.ceil(Math.random() * 5);
返回的值是0,1,2,3,4而不是1,2,3,4,5?math.random是否假設0是一個整數?
我試圖測試,但它似乎永遠不會打0或5 = X
從理論上講,Math.random()
將始終大於或等於返回一個值0,並嚴格小於1
因此,使用(int) Math.ceil(Math.random() * 5)
實際上應該給你0,1,2,3,4,5,然而,從Math.random()
以外正是 0將調用Math.ceil()
後給予的1或更大的值返回的值 - 這樣你會經常看到0消失。 (如果你曾經看到它,你肯定會幸運的,但它絕對是可能。)看到5很容易 - 你會得到任何時間Math.random()
返回一個大於0.8的值。
是否有任何理由您不使用Random.nextInt()
?
雖然它應該給你0非常非常罕見。 – rob 2010-11-22 06:21:45
我對Random.nextInt()並不熟悉 - 它是生成隨機數的更好方法嗎? – Sapp 2010-11-22 06:21:48
@rob:我只是補充說:) @Sapp:是的。它給你更多的控制種子等,*和*有用的方法來獲得範圍內的整數等。 – 2010-11-22 06:22:34