Java中的骰子滚动模拟

时间:2016-01-26 23:06:08

标签: java

我搜索了这个网站,发现了类似的代码,但有点不同。对于我在课堂上的实验室,说明书说我需要滚动N次,M次,并显示频率表中滚动发生的次数。所以我在频率表中设置数据时遇到了一些麻烦。频率表打印正确,但我的数字是错误的。我觉得我错过了什么,数组或增量?请帮忙

我的意见:

import javax.swing.*;
import java.awt.*;
import java.util.*;

public class Lab1
{


  public static void main(String[] arg)
  {
       Random ran = new Random();
       String n = JOptionPane.showInputDialog(null,"How many dice?: ");
       String m = JOptionPane.showInputDialog(null,"How many rolls?: ");
       int die = Integer.parseInt(n);
       int roll = Integer.parseInt(m);
       int count = 0;
       int[] rollArr = new int[die*6+1];

       for(int i=0;i<rollArr.length;i++)
       {
            rollArr[i] = 0;
       }

       for( int i=0; i<roll;i++)
       {
            count = die*1 + ran.nextInt ( 6 );
            ++rollArr[count];
       }

       for(int r=1;r<rollArr.length;r++)
            System.out.println(r + ":" + rollArr[r]);
  }
}

这个例子说要掷4个骰子1,000,000次得到一个钟形曲线,但我的曲线有很多零。 我的输出:

1:0
2:0
3:0
4:166309
5:166424
6:166523
7:166984
8:167286
9:166474
10:0
11:0
12:0
13:0
14:0
15:0
16:0
17:0
18:0
19:0
20:0
21:0
22:0
23:0
24:0

1 个答案:

答案 0 :(得分:3)

我只是给出一个提示,因为这是一个实验室作业。

我相信你的导师希望看到模具卷的总和的分布,因为这将显示为钟形曲线。因此,您的数组必须捕获并计算可能的总和。例如,如果你掷了四个骰子,那么可能的总数是4-24,你就可以计算出来了。