gpt4 book ai didi

java - 不在循环中多次生成相同的随机数

转载 作者:行者123 更新时间:2023-12-02 10:51:54 25 4
gpt4 key购买 nike

我是Java新手,所以如果有任何不清楚的地方(或者代码真的很糟糕),请提前道歉,但我正在尝试构建一个程序,让计算机猜测用户拥有的两位数代码输入(即 secretCode)。下面的代码工作正常,它将生成一个随机代码,然后将其与密码进行比较,并检查是否在正确的位置输入了位置。

但是,我该如何做到这一点,以便每次计算机猜测时,它都无法猜测它之前猜测过的数字(例如,如果它在第一次猜测时猜测了 57,则它无法再次选择 57循环持续时间)。基本上,我希望计算机记录它所做的猜测,并且不再重复。有什么想法可以做到这一点(如果可能的话,无需对程序进行大量重写)?或者我在这方面走错了路?

while (guesses < 10)
int[] compCode = computer.getComputerCode(); //This line gets a random two digit array of ints
System.out.print("Computer guess: ");
Arrays.stream(compCode).forEach(System.out::print);
correctPositions = getPosition(compCode, secretCode);

System.out.println("\nYou picked " + correctPositions + " numbers in the correct position.");
guesses++;
}

最佳答案

实现此目的的一种方法是用数字填充 ArrayList,然后随机播放 ArrayList:

ArrayList<Integer> guesses = new ArrayList<>();
for(int i =0; i < 100; i++) {
guesses.add(i);
}
//guesses now contains numbers 0-99
Collections.shuffle(guesses);

然后,每当您需要随机数时,您都可以简单地调用猜测索引(确保您跟踪您所在的索引)

一个例子可能是这样的:

while(some_condition) {
//start count at -1, so when we add one it will be 0
//which is the first index of the ArrayList
int count = -1;
//Some code
guesses.get(count++);
}

关于java - 不在循环中多次生成相同的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52106894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com