实验室帮助做/同时做

问题描述 投票:-4回答:2

以下是实验室,更是我的Java类简介。这是我的第一个Java课,我深陷其中。我有几行代码,但没有任何值得注意的地方。请帮助!

使用“ do-while”和随机数生成器解决以下问题。

模拟将一对骰子掷出10,000次,并计算每对不同的双打掷出的双掷骰子的次数。

  1. 您的程序应使用Random对象掷两个骰子(即,生成介于1和6之间的两个数字)

  2. 定义6个计数器变量

  3. 如果骰子匹配(两者都应相同于1-1、2-2、3-3 ...),则增加一个特定的计数器[您可以使用'if'或'switch'进行条件检查(dice1 == dice2)和计数器递增。

  4. 在循环完成10,000次后显示结果。

    1-1 displayed: 30 times 
    2-2 displayed: 100 times 
    ...................
    6-6 displayed: 890 times
    

公共类DiceRoll {

public static void main(String []args){

    int x = 0;

    int counter1 = 0;
    int counter2 = 0;
    int counter3 = 0;
    int counter4 = 0;
    int counter5 = 0;
    int counter6 = 0;

    do {

        int dice1 = (int)(Math.random()*6)-1;
        int dice2 = (int)(Math.random()*6)-1;

        if (dice1 == dice2){
            if (dice1 == 1){
                counter1++;
            }
            if (dice1 == 2){
                counter2++;
            }
            if (dice1 == 3){
                counter3++;
            }
            if (dice1 == 4){
                counter4++;
            }
            if (dice1 == 5){
                counter5++;
            }
            if (dice1 == 6){
                counter6++;
            }
        }

    } while (x > 10000);

    System.out.println("Results:");
    System.out.println(" ");
    System.out.println("1-1 displayed: " + counter1);
    System.out.println("2-2 displayed: " + counter2);
    System.out.println("3-3 displayed: " + counter3);
    System.out.println("4-4 displayed: " + counter4);
    System.out.println("5-5 displayed: " + counter5);
    System.out.println("6-6 displayed: " + counter6);
}

}

java
2个回答
1
投票

好吧,我不想仅仅给出一个解决方案,所以我将尝试引导您完成它。 (对不起,如果我告诉您您已经知道的事情)

1。 Random对象。这是Random类的实例。您需要创建一个random类型的变量,并将其分配给Random对象。

    Random dice = new Random();

在do-while循环之外执行此操作,这样就不会生成新的Random实例,也不会每次都给它分配dice变量。

2。然后您将需要使用此对象生成随机数。如果查看documentation,将找到一种返回用户指定范围内的int的方法:

nextInt(int绑定)

要生成随机数,请从骰子中调用此方法并将返回值存储在另一个变量中:

     int rollOne = dice.nextInt(6)+1;

将答案加1的原因是nextInt返回一个介于零和给定值之间的值exclusive

3。

do-while循环。此循环执行一次,然后在每次后续执行之前检查while关键字之后的条件(以查看是否应再次执行)。您需要循环执行10,000次。
    int rolls = 0
    do { 
        rolls++;   // Increments rolls by one
    } while(rolls < 10,000);  //It starts at one, so this will loop 10,000 times

4。放入循环中的内容

:每次迭代,您都需要掷骰子两次(两次使用nextInt),比较它们的值,并增加适当的计数器。

0
投票

好的,既然我已经看过您的代码,您的问题就很简单了:

© www.soinside.com 2019 - 2024. All rights reserved.