小编典典

将Java随机数生成偏向某个数字

java

在Java中,如何生成随机数,但如何使该随机数偏向特定数字。例如,我想生成一个介于1到100之间的数字,但是我希望该数字偏向75。但是我仍然希望能够获得该范围内的其他数字,但是我希望获得数字的更多变化接近75,而不是仅仅获得整个范围内的随机数。谢谢


阅读 212

收藏
2020-11-16

共1个答案

小编典典

尝试http://download.oracle.com/javase/6/docs/api/java/util/Random.html#nextGaussian()

Math.max(1, Math.min(100, (int) 75 + Random.nextGaussian() * stddev)))

选择一个类似10的stddev并尝试直到获得所需的发行版。尽管1和100处的数字比2或99处的数字要大一些。如果要更改其下降的速率,可以将高斯提升为幂。

2020-11-16