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

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

我相信您的导师希望看到掷骰子总的分布,因为这就是将显示为钟形曲线的内容。因此,您的阵列必须捕获并计算可能的总和。例如,如果你掷了四个骰子,那么可能的总和是4-24,你会把它们计算起来。

最新更新