Java 生成13到100之间的1000个随机数

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%,重复了一千次 真的不符合我的要求。但这可能是一个种子问题。确保始终

我试图在13到100之间生成1000个随机数。到目前为止,它只产生了我想要的东西的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++;