Java 如何检查随机数是否相同;在定义变量时;
我想给a,b和c分配随机数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
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%的声誉才能投票,但我要再次重申,这是最好的答案!