2
可能重複:
Random floating point double in Inclusive Range隨機漂浮在Java
我工作的一個項目,我需要在0.0和1.0兩個(含)之間的隨機浮點。考慮過了一會兒,我發現它的propably不是我的項目,該項目重要,無論如何,所以我只是用標準:
new Random().nextFloat();
產生從0.0(inlcusive)到1.0(不含)的浮動。
但我不能停止思考它是如何實現與1.0包含?我能想到的
一種方法是(僞):
new Random().nextFloat() * (1.0 + "lowest possible value above 0");
我能想到的另一種方法是:
float myRandomFloat = 0;
float rand1 = new Random().nextFloat(); // [0;1)
float rand2 = 1.0f - new Random().nextFloat(); // (0;1]
boolean randPicker = new Random().nextBoolean();
if (randPicker)
myRandomFloat = rand1;
else
myRandomFloat = rand2;
但我認爲這應該是更簡單或不?所以我真正的問題是:是否有一個真正的或更好的方式來做到這一點?
10與什麼有什麼關係? –
如果有任何方法乘以Random()。nextFloat()得到10,那麼你也可以得到1,這將是這個問題的解決方案。 –
毫米如果你乘以11,然後使用圓,你會得到0到10之間的數字均勻分佈 –