以下是实验室,更是我的Java类简介。这是我的第一个Java课,我深陷其中。我有几行代码,但没有任何值得注意的地方。请帮助!
使用“ do-while”和随机数生成器解决以下问题。
模拟将一对骰子掷出10,000次,并计算每对不同的双打掷出的双掷骰子的次数。
您的程序应使用Random对象掷两个骰子(即,生成介于1和6之间的两个数字)
定义6个计数器变量
如果骰子匹配(两者都应相同于1-1、2-2、3-3 ...),则增加一个特定的计数器[您可以使用'if'或'switch'进行条件检查(dice1 == dice2)和计数器递增。
在循环完成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);
}
}
好吧,我不想仅仅给出一个解决方案,所以我将尝试引导您完成它。 (对不起,如果我告诉您您已经知道的事情)
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次。:每次迭代,您都需要掷骰子两次(两次使用nextInt),比较它们的值,并增加适当的计数器。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。放入循环中的内容
好的,既然我已经看过您的代码,您的问题就很简单了: