java - Java 中的掷骰子模拟

标签 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,您需要将这些数字相加。

关于java - Java 中的掷骰子模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35025786/

相关文章:

java - 使用方法作为事件监听器而不是类

java - 谷歌应用引擎: How much faster is key-based lookup compared to a query?

java - Socket客户端android不显示收到的消息

java - 如何在 NetBeans 中为 Java EE 项目启用断言?

java - 用于编译 Java 代码的库的符号链接(symbolic link)

java - 如何在 swt list eclipse 中禁用列表元素

java - 如何在程序中刷新 .properties 文件?

java - Java 元注释在运行时是否可用?

java - 通过服务控制 Activity 实例可见性?

java - Lombok 或 Java 'var' 有用的用例