Java 创建直方图数组
所以我需要创建一个柱状图,显示4个骰子的骰子总数的结果。程序每次掷骰子时都会取骰子总数。我需要创建一个骰子循环中每个数字的频率直方图。这是我的密码:Java 创建直方图数组,java,arrays,histogram,frequency,Java,Arrays,Histogram,Frequency,所以我需要创建一个柱状图,显示4个骰子的骰子总数的结果。程序每次掷骰子时都会取骰子总数。我需要创建一个骰子循环中每个数字的频率直方图。这是我的密码: import java.util.Scanner; import java.util.Random; import java.util.Scanner; import java.lang.Math; public class DieSimulator { public static void main(String[] args) { Die
import java.util.Scanner;
import java.util.Random;
import java.util.Scanner;
import java.lang.Math;
public class DieSimulator
{
public static void main(String[] args)
{
Die d1 = new Die(6);
Die d2 = new Die(6);
Die d3 = new Die(6);
Die d4 = new Die(6);
int roll = 100;
int [] rolls = new int[roll];
int four = 0;
int five = 0;
int six = 0;
int seven = 0;
int eight = 0;
int nine = 0;
int ten = 0;
int eleven = 0;
int twelve = 0;
int thirteen = 0;
int fourteen = 0;
int fifteen = 0;
int sixteen = 0;
int seventeen = 0;
int eighteen = 0;
int nineteen = 0;
int twenty = 0;
int twentyone = 0;
int twentytwo = 0;
int twentythree = 0;
int twentyfour = 0;
for (int i=0; i < rolls.length; i++)
{
int n1 = d1.cast();
//System.out.print(n1 + "");
int n2 = d2.cast();
//System.out.print(n2 + "");
int n3 = d3.cast();
//System.out.print(n3 + "");
int n4 = d4.cast();
int sum = n1 + n2 + n3 + n4;
if (sum == 4)
four++;
if (sum == 5)
five++;
if (sum == 6)
six++;
if (sum == 7)
seven++;
if (sum == 8)
eight++;
if (sum == 9)
nine++;
if (sum == 10)
ten++;
if (sum == 11)
eleven++;
if (sum == 12)
twelve++;
if (sum == 13)
thirteen++;
if (sum == 14)
fourteen++;
if (sum == 15)
fifteen++;
if (sum == 16)
sixteen++;
if (sum == 17)
seventeen++;
if (sum == 18)
eighteen++;
if (sum == 19)
nineteen++;
if (sum == 20)
twenty++;
if (sum == 21)
twentyone++;
if (sum == 22)
twentytwo++;
if (sum == 23)
twentythree++;
if (sum == 24)
twentyfour++;
System.out.println("Total Dice roll: " + sum);
System.out.println(twenty);
}
int[] histogram = new int[20];
System.out.print(histogram);
}
}
import java.util.Scanner;
导入java.util.Random;
导入java.util.Scanner;
导入java.lang.Math;
公共类模拟机
{
公共静态void main(字符串[]args)
{
模具d1=新模具(6);
模具d2=新模具(6);
模具d3=新模具(6);
模具d4=新模具(6);
整卷=100;
int[]滚动=新的int[滚动];
int-four=0;
int五=0;
int-six=0;
int七=0;
int八=0;
int九=0;
int-ten=0;
int-11=0;
int十二=0;
int十三=0;
int十四=0;
int十五=0;
int十六=0;
int十七=0;
int=0;
int 19=0;
int二十=0;
int-twentyone=0;
int twentytwo=0;
int二十三=0;
int二十四=0;
对于(int i=0;i
我使用什么代码创建直方图?更改为这样的数组。人们可以使用SparseArray,因为索引0、1、2、3从未使用过,但对我来说似乎不值得。我将数组设为25长(24+1),这样结果[x]可以保存x骰子掷骰的次数
import java.util.Scanner;
import java.util.Random;
import java.util.Scanner;
import java.lang.Math;
public class DieSimulator
{
public static void main(String[] args)
{
Die d1 = new Die(6);
Die d2 = new Die(6);
Die d3 = new Die(6);
Die d4 = new Die(6);
int roll = 100;
int [] rolls = new int[roll];
int [] results = new int[25];
for (int i=0; i < rolls.length; i++)
{
int n1 = d1.cast();
//System.out.print(n1 + "");
int n2 = d2.cast();
//System.out.print(n2 + "");
int n3 = d3.cast();
//System.out.print(n3 + "");
int n4 = d4.cast();
int sum = n1 + n2 + n3 + n4;
results[sum]++;
System.out.println("Total Dice roll: " + sum);
}
System.out.print(results);
}
}
import java.util.Scanner;
导入java.util.Random;
导入java.util.Scanner;
导入java.lang.Math;
公共类模拟机
{
公共静态void main(字符串[]args)
{
模具d1=新模具(6);
模具d2=新模具(6);
模具d3=新模具(6);
模具d4=新模具(6);
整卷=100;
int[]滚动=新的int[滚动];
int[]结果=新的int[25];
对于(int i=0;i
补充RobP的答案,要获得直方图,请在主函数结束前添加以下内容:
for(int i = 4; i < 24; i++) {
System.out.println("Result: " + i + " has got " + results[i] + " hit(s)");
}
我也会这么做。。。并且不在内存中分配数组。4到24个变量是什么?你不能用一个数组吗?这些是所有可能的骰子和。是否有方法将这些变量包含在数组中。这才是我真正想做的。
for (int i = 0; i < 100; i++)