【发布时间】:2010-09-26 16:39:41
【问题描述】:
如何在特定范围内生成随机的int 值?
我尝试了以下方法,但这些都不起作用:
尝试 1:
randomNum = minimum + (int)(Math.random() * maximum);
错误:randomNum 可以大于 maximum。
尝试 2:
Random rn = new Random();
int n = maximum - minimum + 1;
int i = rn.nextInt() % n;
randomNum = minimum + i;
错误:randomNum 可以小于 minimum。
【问题讨论】:
-
当你需要大量随机数时,我不推荐API中的Random类。它的周期太短了。请改用Mersenne twister。有a Java implementation。
-
在发布新答案之前,请考虑此问题已有 65 多个答案。请确保您的答案提供的信息不在现有答案中。