Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查随机数是否相同;在定义变量时;_Java - Fatal编程技术网

Java 如何检查随机数是否相同;在定义变量时;

Java 如何检查随机数是否相同;在定义变量时;,java,Java,我想给a,b和c分配随机数 private int something1; private int something2; private int something3; Random r=new Random(); int a=r.nextInt(700); int b=r.nextInt(700); int c=r.nextInt(700); private int imgX=a; private int img2X

我想给a,b和c分配随机数

    private int something1;
    private int something2;
    private int something3;

    Random r=new Random();
    int a=r.nextInt(700);
    int b=r.nextInt(700);
    int c=r.nextInt(700);

    private int imgX=a;
    private int img2X=b;
    private int img3X=c;
我做过类似的事情。但有时它会给我相同的随机数。为了防止在创建If块时出现这种情况,它会给出错误。我该怎么办?当我创建If块或do while时,我在img中得到了以下错误

Random r=new Random();
int a=r.nextInt(700);
int b,c;
做{
b=r.nextInt(700);
}而(b==a);
做{
c=r.nextInt(700);
}而(c==b | | c==a):

应该这样做。

例如,我建议使用Set来获得更通用的算法

 Random r=new Random();
 Set<Integer> set = new HashSet<>();
 int a = getRandomNumber(r,set,700);
 int b = getRandomNumber(r,set,700);
 int c = getRandomNumber(r,set,700);
 ...

 private int getRandomNumber(Random r, Set<Integer> set, int maxNumber) {
     int number;
     do {
          number = nextInt(maxNumber);
     } while (set.contains(nubmer));

     set.add(number);
     return number;
 }
Random r=new Random();
Set=newhashset();
int a=随机数(r,set,700);
int b=随机数(r,set,700);
int c=随机数(r,set,700);
...
私有int getRandomNumber(随机r、集合、int maxNumber){
整数;
做{
编号=nextInt(最大编号);
}while(set.contains(numer));
设置。添加(编号);
返回号码;
}

类似于
intb=a;而(a==b)b=r.nextInt(700)应该可以做到。只是说:你认为随机数不应该相等。。。使它们不那么随机!这是人类对随机性的典型误解。如果你想要真正的随机数,不要这样限制它们。现在我看了你的代码,我认为我们缺少了一些上下文。那些
private
让我觉得我们在一种方法之外。如果需要对初始化应用逻辑,您可能需要将代码放入构造函数中。“当我创建if block时,它会给出错误”向我们显示您创建的“if block”以及由此得到的错误消息。可能值得添加一点:它可以减少数字的随机性。您是对的。Buu do while是一个类似于If blocks的东西,它不接受。只是给出了一个错误。“令牌上的语法错误”;“,{此标记后应为“但一切都是正确的,注意代码需要包含在方法中也很重要。@TahaYasinErel阅读问题的答案。如果此答案对您有帮助,您可以将其标记为已接受的答案(当然,如果您认为这是最适合您的答案).我需要至少15%的声誉才能投票,但我要再次重申,这是最好的答案!