Java 从集合{1,3,100}生成随机数

Java 从集合{1,3,100}生成随机数,java,random,Java,Random,我已经知道如何生成一个范围内的随机数; 但我的问题是,从一组2个或更多的指定数字生成一个数字的可能性。 例如: 输出必须在“1”或“3”或“100”之间随机选择 另一种说法是:获得的值将是三个数字中的任意一个:1、3或100(中间没有任何数字)。 将数字放入int[3] 在0和2之间选择一个随机数 使用该随机数作为数组的索引 …是许多方法之一。 将数字放入int[3] 在0和2之间选择一个随机数 使用该随机数作为数组的索引 …是多种方法之一。Random是您的解决方案: public sta

我已经知道如何生成一个范围内的随机数; 但我的问题是,从一组2个或更多的指定数字生成一个数字的可能性。 例如: 输出必须在“1”或“3”或“100”之间随机选择

另一种说法是:获得的值将是三个数字中的任意一个:1、3或100(中间没有任何数字)。

  • 将数字放入
    int[3]
  • 在0和2之间选择一个随机数
  • 使用该随机数作为数组的索引
…是许多方法之一。

  • 将数字放入
    int[3]
  • 在0和2之间选择一个随机数
  • 使用该随机数作为数组的索引

…是多种方法之一。

Random
是您的解决方案:

public static int generateRandomNumber(int[] availableCollection) {
   Random rand = new Random();
   return availableCollection[rand.nextInt(availableCollection.length)];
}

Random
是您的解决方案:

public static int generateRandomNumber(int[] availableCollection) {
   Random rand = new Random();
   return availableCollection[rand.nextInt(availableCollection.length)];
}
将它们存储在数组中,然后从中选择一个随机元素。要选择随机元素,请参见以下内容:

将它们存储在数组中,然后从中选择一个随机元素。要选择随机元素,请参见:

Java
Math.random()
生成介于0.0和1.0之间的随机数。您可以根据需要编写代码。 例如:

double random = new Math.random();
random = myRandom(random);

    public double myRandom(double random){

        if(random < 0.33){return 1;}
        else if(random < 0.66) {return 3;}
        else {return 100;}
    }
double random=new Math.random();
随机=我的随机(随机);
公共双随机(双随机){
if(random<0.33){返回1;}
else if(random<0.66){返回3;}
else{return 100;}
}
Java
Math.random()
生成介于0.0和1.0之间的随机数。您可以根据需要编写代码。 例如:

double random = new Math.random();
random = myRandom(random);

    public double myRandom(double random){

        if(random < 0.33){return 1;}
        else if(random < 0.66) {return 3;}
        else {return 100;}
    }
double random=new Math.random();
随机=我的随机(随机);
公共双随机(双随机){
if(random<0.33){返回1;}
else if(random<0.66){返回3;}
else{return 100;}
}


这将如何工作?我真的看不出这和1-100有什么不同。@AndrewThompson是的,没错;谢谢大家,;大多数解决方案都是可行的work@AndrewThompson牛仔,你在忙什么?!哇!最近有很多人给我打电话,“善良”肯定不在其中那怎么办?我真的看不出这和1-100有什么不同。@AndrewThompson是的,没错;谢谢大家,;大多数解决方案都是可行的work@AndrewThompson牛仔,你在忙什么?!哇!最近有很多人给我打电话,“善良”肯定不在其中谢谢这很有帮助,相信我;如果我有足够的重复次数;我不会犹豫;对不起,谢谢;这很有帮助,相信我;如果我有足够的重复次数;我不会犹豫;抱歉,简单而真实;如果你想得到概率相等的结果,这可能是最好的解决方案。@pjs你不是说salihrkc的解决方案不是吗?假设这些数字被正确地分割。@Shervin4030 salihrkc的解决方案给出了概率.33、.33和.34,也就是说,不完全均匀分布。话虽如此,如果你想要不相等的概率,那么这个答案就是一种方法。例如,如果你想得到100个结果的频率是其他两个结果的两倍,那么将测试更改为.25和.25。Doh!如果你想两倍的获得100分并且做得正确的话,就把这个数字设为0.25和0.5简单真实;如果你想得到概率相等的结果,这可能是最好的解决方案。@pjs你不是说salihrkc的解决方案不是吗?假设这些数字被正确地分割。@Shervin4030 salihrkc的解决方案给出了概率.33、.33和.34,也就是说,不完全均匀分布。话虽如此,如果你想要不相等的概率,那么这个答案就是一种方法。例如,如果你想得到100个结果的频率是其他两个结果的两倍,那么将测试更改为.25和.25。Doh!如果你想两倍的获得100分并且做得正确的话,就把这个数字设为0.25和0.5