gpt4 book ai didi

java - 尝试猜测多少次

转载 作者:行者123 更新时间:2023-12-01 11:21:09 25 4
gpt4 key购买 nike

我有一个彩票程序,我想要求我猜测“中奖”号码,然后生成所述号码。完成后,它会将这些数字打印回给我,并告诉我需要多少次尝试才能得出正确的答案。

我的代码如下。我以为我从另一个线程中得到了答案,所以确定我关闭了它 - 现在找不到它。我的问题实际上只是“我的代码出了什么问题?”类型,因为我认为代码可以工作,但由于数组是 6 个数字,我认为这将花费计算机一些时间。

出于这个原因,我将数组更改为只有 1 个数字,但仍然需要很长时间才能返回“你猜对了......!”让我相信我还缺少其他一些错误。

package lottery;

import java.util.Scanner;

public class lottery { // Begin lottery class
public static void main(String[] args) { // Begin MAIN method

// Define variables
Scanner keyboard = new Scanner(System.in);
int[] lottery = new int[6];
int randomNum = 1 + (int) Math.random() * 59;
int noTimes = 1;
int guess = 0;
// End variable definition

System.out.println("Generating lottery numbers, what is your guess?");
while (guess != randomNum) {
guess = keyboard.nextInt();
guess++;
}

// Input received - generate numbers now
System.out.println("Thank you. Generating lottery numbers now...");

for (int i = 0; i < 6; i++) {
randomNum = (int) Math.ceil(Math.random() * 59); // Random number created here.
for (int x = 0; x < i; x++) {
if (lottery[x] == randomNum) // Here, code checks if same random number generated before.
{
randomNum = (int) Math.ceil(Math.random() * 59);// If random number is same, another number generated.
x = -1; // restart the loop
}

}
lottery[i] = randomNum;
}

for (int j = 0; j < noTimes; j++) {
for (int i = 0; i < lottery.length; i++) {
System.out.print("The winning numbers are: " + lottery[i] + " ");
}
System.out.println("\n");
System.out.print("You correctly guessed in " + guess + " tries.");
}
} // End MAIN method
} // End Lottery class

显然,我不知道如何做常规代码标记?颜色?

最佳答案

您的代码中存在各种问题,如下所述。

  1. 要生成 1 到 59(包括 60)之间的随机整数,请在 3 个位置使用以下代码片段:

    int randomNum = 1 + (int)(Math.random() * 59);
  2. 需要修复猜测检查逻辑(如下所述):

    int noTimes = 0;  // Corrected
    ...
    while (guess != randomNum) {
    guess = keyboard.nextInt();
    noTimes++; // Corrected
    }
  3. 最后一对 for 循环(位于 3 个连续打印之前的循环)看起来很奇怪。这是一个更明智的替代方案:

    System.out.print("The winning numbers are:");
    for (int i = 0; i < lottery.length; i++) {
    System.out.print(" " + lottery[i]);
    }
    System.out.println();
    System.out.println("You correctly guessed in " + noTimes+ " tries.");

除此之外,到目前为止,您的代码对我来说看起来还不错。

PS:从 59 个元素中选择 6 个有序项有 324 亿种可能性。

关于java - 尝试猜测多少次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31215955/

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