使用math.random和while循环的简单Java彩票模拟器?
如何设置while循环的格式以检查重复项,如果存在重复项,则不返回该数字使用math.random和while循环的简单Java彩票模拟器?,java,loops,while-loop,Java,Loops,While Loop,如何设置while循环的格式以检查重复项,如果存在重复项,则不返回该数字 可以使用集合集合存储唯一值。方法add() 如果此集合尚未包含指定的元素,则返回true 例如: publicstaticvoidmain(字符串[]args){ 最终int池1=68; 最终int POOL2=25; int i=0; Set ballSet=新HashSet(); 而(i
可以使用集合集合存储唯一值。方法
add()
如果此集合尚未包含指定的元素,则返回true
例如:
publicstaticvoidmain(字符串[]args){
最终int池1=68;
最终int POOL2=25;
int i=0;
Set ballSet=新HashSet();
而(i<5){
长球=数学圆(POOL1*Math.random())+1;
如果(!ballSet.add(ball)){
继续;
};
i++;
}
long pball=Math.round(POOL2*Math.random())+1;
while(ballSet.contains(pball)){
pball=Math.round(POOL2*Math.random())+1;
}
String winner=ballSet.stream().map(对象::toString.collect(加入(“,”));
System.out.println(“您的中奖号码是:“+winner”);
System.out.printf(“并且powerball是:%d”,pball);
}
}
取决于您试图避免重复的内容。您甚至可能不需要while
循环。我希望避免前5个数字(ball1、ball2…ball5)重复,是的,我应该使用while循环来解决问题,但似乎无法解决它。而不是使用单个int
变量ball1
、ball2
,等等。,尝试将数字放入int
数组int[]balls
中,这样您就可以轻松地对它们进行迭代以检查重复项。记录您成功绘制的球数,每次选择新的随机数时,搜索先前绘制的球,确保新的球不是重复的。while
循环将一直进行,直到您成功绘制5个唯一的数字。出于我的课程目的,我也不能使用数组,因为我们还没有达到该点。所以,如果有意义的话,我想找到一种方法来检查每个变量是否重复。感谢您的帮助通过检查每个球是否与所有编号较低的球不同,您可以确保有五个唯一的球;i、 e.ball2!=ball1
,ball3!=球2和球3!=ball1
,等等。您可以在一个大循环中同时绘制和测试所有五个球,或者在四个较小的循环中分别绘制和测试球2到5,由您选择。LotterySimulator.java:25:error:找不到符号集ballSet=new HashSet();^symbol:class Set location:class LotterySimulator LotterySimulator.java:25:错误:找不到符号集ballSet=new HashSet();^符号:类HashSet位置:类LotterySimulator 2错误任何想法?导入java.util.HashSet;导入java.util.Set;当我现在编译我的程序时,我没有得到任何错误。然而,我也没有得到任何输出。我必须有“System.out.printf”(“您的中奖号码是:%d、%d、%d、%d、%d”,ball1、ball2、ball3、ball4、ball5”);System.out.printf(“而强力球是:%d”,pball);“我感谢您的帮助。然而,set和haset-util会导致错误,因为我的类还没有涵盖这些主题。如果你不能/不想没有这些,我理解,但是谢谢你
import java.util.Scanner;
public class LotterySimulator
{
public static void main(String[] args)
{
final int POOL1 = 68;
final int POOL2 = 25;
long ball1, ball2, ball3, ball4, ball5, pball;
ball1 = Math.round(POOL1*Math.random()) + 1;
ball2 = Math.round(POOL1*Math.random()) + 1;
ball3 = Math.round(POOL1*Math.random()) + 1;
ball4 = Math.round(POOL1*Math.random()) + 1;
ball5 = Math.round(POOL1*Math.random()) + 1;
pball = Math.round(POOL2*Math.random()) + 1;