我搜索了这个网站,发现类似的代码,但有点不同。对于我在类里面的实验,说明说我需要滚动 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/