如何int在特定范围内生成随机值?
我试过以下,但那些不起作用:
尝试1:
randomNum = minimum + (int)(Math.random() * maximum);
// Bug: `randomNum` can be bigger than `maximum`.
Run Code Online (Sandbox Code Playgroud)
尝试2:
Random rn = new Random();
int n = maximum - minimum + 1;
int i = rn.nextInt() % n;
randomNum = minimum + i;
// Bug: `randomNum` can be smaller than `minimum`.
Run Code Online (Sandbox Code Playgroud) 我想根据我在Stack Overflow上发现的随机数生成Unique Pins 如何生成一个随机的五位数Java.该问题使用时间来生成数字,因此您可以获得大量重复项.
这是我的代码
public int createRandomPin() {
int k = random.nextInt(Integer.SIZE);
k = (k + 1) * 9999;
if (9999 > k || k > 99999) {
//then regenerate
} else {
return k;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题
然后,NetBeans会发出错误"返回"的警告.我还需要重新构造代码,这样如果它不是一个5位数的引脚,它会在"返回k"之前再次生成.
我只想生成6位数的随机数,范围应从000000到999999。
new Random().nextInt(999999) 返回我的电话号码,但不是6位数字。
我想在java中生成任意特定数字(例如5,即10000到99999)的随机数.我怎样才能做到这一点?