我正在Java中實現一個測試數據生成器,用於爲Java基本類型生成隨機值。 可能的參數值範圍不受限制。例如,如果我想生成一個隨機整數或浮點數,我會考慮所有可能的值(MAX_INT-MIN_INT)。要做到這一點,我使用的東西,如:。爲什麼java中的隨機函數總是生成高值?
- 隨機()nextInt()
- 隨機()nextLong()
- 隨機()nextFloat()* Float.MAX_VALUE
- 隨機的()。nextDouble()* Double.MAX_VALUE
- 等等...
但是,做這樣的,我注意到,所產生的值總是高(接近最大值和價值低參數類型)。例如,經過100000次迭代後,隨機算子不會在[-1000 - 1000]範圍內生成一個值。對於花車,多頭也是一樣。等等,...
你能不能給我的隨機操作人員如何在Java執行的解釋?爲什麼當我們考慮Java類型的所有可能值時,生成的值總是很高?
在此先感謝。
嘗試總結大量的生成值。由於它的分佈是均勻的,所以總和將趨向於0. –
概率是215萬之一,所以我建議你用1000萬的平局重試,你應該會看到一些數字出現...... – assylias
有很多大數字,並不是很多小數字,所以當然你會比小數字大得多。 (你確實要求統一分配...) – immibis