Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 掷两个骰子得到一个7_Java - Fatal编程技术网

Java 掷两个骰子得到一个7

Java 掷两个骰子得到一个7,java,Java,我试着让骰子滚动直到得到7,然后记录下通过测试得到7的总次数。一旦所有的试验都完成了,我需要对它们进行平均。现在我输入了试验次数,但它运行了“for循环”的第一部分(“试验1:”),然后不做任何其他事情。我错过了什么?这是在dr.JavaIDE中完成的 ***while循环后的Edit*分号是最初的问题。现在我遇到了另一个。循环产生相同的输出(如图所示)。 输入随机数生成器的种子值: [1] 输入试验次数: [10] 试玩#1:10掷骰到7掷骰 试玩#2:10掷骰到7掷骰 试玩#3:10掷骰到7

我试着让骰子滚动直到得到7,然后记录下通过测试得到7的总次数。一旦所有的试验都完成了,我需要对它们进行平均。现在我输入了试验次数,但它运行了“for循环”的第一部分(“试验1:”),然后不做任何其他事情。我错过了什么?这是在dr.JavaIDE中完成的

***while循环后的Edit*分号是最初的问题。现在我遇到了另一个。循环产生相同的输出(如图所示)。 输入随机数生成器的种子值:

[1]

输入试验次数:

[10]

试玩#1:10掷骰到7掷骰

试玩#2:10掷骰到7掷骰

试玩#3:10掷骰到7掷骰

试用版#4:10掷骰到7掷骰

试玩#5:10掷骰到7掷骰

试玩#6:10掷骰到7掷骰

试用版#7:10卷到7卷

试玩#8:10掷骰到7掷骰

试玩#9:10掷骰到7掷骰

试玩#10:10掷骰到7掷骰

在10次试验中,平均滚动1.0次,滚动7次**

import java.util.*;

public class Geometric {
  public static void main(String[] args) {
    //create the Scanner and the Random number generator using a given seed
    Scanner scnr = new Scanner(System.in);
    System.out.println("Enter the seed value for the random number generator:");
    int seed = scnr.nextInt();
    Random r = new Random(seed);

    //TODO: complete the program
    System.out.println("Enter the number of trials:");
    int trials = scnr.nextInt();

    int sum = 0;
    int count = 0;
    int diceAdded = 0;
    for (int i=1;i<=trials;i++) {
      System.out.print("Trial #" + i + ": ");

    while (diceAdded != 7) {
        int dice = r.nextInt(6)+1;
        int dice2 = r.nextInt(6)+1;
        diceAdded = dice + dice2;
        count++;
    }
        System.out.println(count + " rolls to roll a 7.");
        sum = count;
      }
    double average = (sum/trials);
    System.out.println("Average " + average + " rolls to roll a 7 over " + trials + " trials.");
  }
}
import java.util.*;
公共类几何{
公共静态void main(字符串[]args){
//使用给定种子创建扫描仪和随机数生成器
扫描仪scnr=新扫描仪(System.in);
System.out.println(“输入随机数生成器的种子值:”);
int seed=scnr.nextInt();
随机r=新随机(种子);
//TODO:完成程序
System.out.println(“输入试验次数:”);
int trials=scnr.nextInt();
整数和=0;
整数计数=0;
int=0;

对于(inti=1;i而言,在“Trial#1:”中停止的主要问题是,
while
立即停止,因为分号


while(diceAdded!=7);{
更改为
while(diceAdded!=7){
在“试验1:”中停止的主要问题是,您的
while
立即停止,因为分号


while(diceAdded!=7);{
更改为
while(diceAdded!=7){

除了您已经指出的分号输入错误之外,您不会在
for
循环中重置变量,因此每次迭代都将在相同的值上执行

通过将您的
计数
变量移动到
for
循环中来解决此问题:

System.out.println("Enter the number of trials:");
int trials = scnr.nextInt();

int sum = 0;

for (int i=1;i<=trials;i++) {
  System.out.print("Trial #" + i + ": ");
  int count = 0;  
  int diceAdded = 0;
  while (diceAdded != 7) {
    int dice = r.nextInt(6)+1;
    int dice2 = r.nextInt(6)+1;
    diceAdded = dice + dice2;
    count++;
  }
  System.out.println(count + " rolls to roll a 7.");
  sum += count;
}

除了已经指出的分号输入错误外,在
for
循环中没有重置变量,因此每次迭代都将在相同的值上执行

通过将您的
计数
变量移动到
for
循环中来解决此问题:

System.out.println("Enter the number of trials:");
int trials = scnr.nextInt();

int sum = 0;

for (int i=1;i<=trials;i++) {
  System.out.print("Trial #" + i + ": ");
  int count = 0;  
  int diceAdded = 0;
  while (diceAdded != 7) {
    int dice = r.nextInt(6)+1;
    int dice2 = r.nextInt(6)+1;
    diceAdded = dice + dice2;
    count++;
  }
  System.out.println(count + " rolls to roll a 7.");
  sum += count;
}

这是Java,不是JavaScript。请不要不断编辑您的问题以反映新的问题和发展。如果您有新的问题(即使它与您的原始问题相关),创建一个新问题。请记住,堆栈溢出的目的不仅仅是帮助您,而是创建一个资源,在一段时间内帮助程序员解决特定问题。为此,要求人们达到一个移动的目标是适得其反的,即使它在短期内对您有所帮助。这是Java,而不是JavaScript。请不要继续编辑您的问题以反映新问题和发展。如果您有新问题(即使它与您的原始问题相关),创建一个新问题。请记住,堆栈溢出的目的不仅仅是帮助您,而是创建一个资源,在一段时间内帮助程序员解决特定问题。为此,要求人们实现移动目标是适得其反的,即使它在短期内对您有所帮助。还有
double average=(sum/trials);
由于整数除法,最终肯定会产生错误的结果。此外,
双平均=(求和/试验);
由于整数除法,最终肯定会产生错误的结果。