我正在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