Java 生成13到100之间的1000个随机数
我试图在13到100之间生成1000个随机数。到目前为止,它只产生了我想要的东西的75%,重复了一千次。以下是我目前掌握的情况:Java 生成13到100之间的1000个随机数,java,random,Java,Random,我试图在13到100之间生成1000个随机数。到目前为止,它只产生了我想要的东西的75%,重复了一千次。以下是我目前掌握的情况: Random rand = new Random(); for (int j = 0; j < 1000; j++) { int pick = rand.nextInt((87) + 13); pick++; } 为什么不工作?线路: 到目前为止,它只产生了我想要的东西的75%,重复了一千次 真的不符合我的要求。但这可能是一个种子问题。确保始终
Random rand = new Random();
for (int j = 0; j < 1000; j++)
{
int pick = rand.nextInt((87) + 13);
pick++;
}
为什么不工作?线路:
到目前为止,它只产生了我想要的东西的75%,重复了一千次
真的不符合我的要求。但这可能是一个种子问题。确保始终使用时间重新设定随机数的种子
但我同意Abdul的观点,你需要去掉括号中的+13:
rand.nextInt(87) + 13;
因为rand.nextInt87+13与rand.nextInt67+23与rand.nextInt1+99相同
但是如果你想要更真实的随机性,可以研究一种叫做buzzhash的东西,尽管它是用于哈希的;然而,可能会对以下行的编号进行修改:
到目前为止,它只产生了我想要的东西的75%,重复了一千次
真的不符合我的要求。但这可能是一个种子问题。确保始终使用时间重新设定随机数的种子
但我同意Abdul的观点,你需要去掉括号中的+13:
rand.nextInt(87) + 13;
因为rand.nextInt87+13与rand.nextInt67+23与rand.nextInt1+99相同
但是如果你想要更真实的随机性,可以研究一种叫做buzzhash的东西,尽管它是用于哈希的;但可能会对数字进行修改rand.nextInt88+13;应该给你13到100之间的数字,你只要把它放在你的循环中就行了。rand.nexting88+13;应该给你13到100之间的数字,你只要把它放在你的循环中。注意下一步包括0和指定的值!所以它必须是rand.nexting88,才能使生成的最高int为87。以下是您想要的:
Random rand = new Random();
for (int j = 0; j<1000; j++)
{
int pick = rand.nextInt(88)+13;
}
请注意,nextInt包含0且仅包含指定值!所以它必须是rand.nexting88,才能使生成的最高int为87。以下是您想要的:
Random rand = new Random();
for (int j = 0; j<1000; j++)
{
int pick = rand.nextInt(88)+13;
}
我在代码中使用此选项:
public static int randomInteger(int min, int max)
{
java.security.SecureRandom rand = new java.security.SecureRandom();
//get bounded [0, max) from nextInt()
int randomNum = rand.nextInt(max) + min;
return randomNum;
}
value = randomInteger(13,100); //13..99
value = randomInteger(13,101); //13..100
我在代码中使用此选项:
public static int randomInteger(int min, int max)
{
java.security.SecureRandom rand = new java.security.SecureRandom();
//get bounded [0, max) from nextInt()
int randomNum = rand.nextInt(max) + min;
return randomNum;
}
value = randomInteger(13,100); //13..99
value = randomInteger(13,101); //13..100
rand.nextInt87+13与rand.nextInt100相同…在代码nextInt87+13中有些奇怪的地方你确定你不是有意要使用rand.nextInt87+13吗?只是注意到Cody谢谢你,不,它没有改变任何东西。另外请注意,nextInt给出了均匀分布,nextGaussian使用正态分布。rand.nextInt87+13与rand.nextInt100相同…在代码nextInt87+13中有些奇怪的地方你确定你不是有意要使用rand.nextInt87+13吗?只是注意到Cody谢谢你,不,它没有改变任何东西。另外请注意,nextInt给出了均匀分布,nextGaussian使用正态分布。从括号中取出13,什么也没变。从括号中取出13,什么也没变changed@ZouZou是的,对不起,我弄错了。但是所有其他的解决方案87+13都不能覆盖100,对吗?!是的,您需要调用nexting88。但是如果您正在这样做,您需要删除pick++@邹祖是的,对不起,我错了。但是所有其他的解决方案87+13都不能覆盖100,对吗?!是的,您需要调用nexting88。但是如果您正在这样做,您需要删除pick++;