我無法計算出一對骰子滾動總和的頻率。我被告知必須使用一維整數數組來計算每個可能總和出現在36000卷中的次數。自從我們剛開始討論數組以來,我不確定自己應該做什麼。以下是指示的鏈接:http://s65.photobucket.com/user/jls7884/media/DicePic-page-001_zpsd45d977f.jpg.html?filters[user]=139936213&filters[recent]=1&sort=1&o=0。通過計算總和,頻率和百分比來模擬骰子滾動
這裏是我到目前爲止的代碼:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package Dice;
/**
*
* @author Jacob
*/
import java.util.Random;
public class Dice
{
public static void count1()
{
int count;
int frequency[] = new int[7];
frequency[1] = 2;
count = 1;
while (count <= 6)
{
frequency[count] = count + 1;
count++;
}
System.out.printf
(
"%-2d %-2d %-2d %-2d %-2d %-2d \n"
, frequency [1] , frequency [2] , frequency [3] , frequency [4] , frequency [5] , frequency [6]
);
}
public static void count2()
{
int count;
int frequency[] = new int[8];
frequency[1] = 3;
count = 1;
while (count <= 6)
{
frequency[count] = count + 2;
count++;
}
System.out.printf
(
"%-2d %-2d %-2d %-2d %-2d %-2d \n"
, frequency [1] , frequency [2] , frequency [3] , frequency [4] , frequency [5] , frequency [6]
);
}
public static void count3()
{
int count;
int frequency[] = new int[7];
frequency[1] = 4;
count = 1;
while (count <= 6)
{
frequency[count] = count + 3;
count++;
}
System.out.printf
(
"%-2d %-2d %-2d %-2d %-2d %-2d \n"
, frequency [1] , frequency [2] , frequency [3] , frequency [4] , frequency [5] , frequency [6]
);
}
public static void count4()
{
int count;
int frequency[] = new int[7];
frequency[1] = 5;
count = 1;
while (count <= 6)
{
frequency[count] = count + 4;
count++;
}
System.out.printf
(
"%-2d %-2d %-2d %-2d %-2d %-2d \n"
, frequency [1] , frequency [2] , frequency [3] , frequency [4] , frequency [5] , frequency [6]
);
}
public static void count5()
{
int count;
int frequency[] = new int[7];
frequency[1] = 6;
count = 1;
while (count <= 6)
{
frequency[count] = count + 5;
count++;
}
System.out.printf
(
"%-2d %-2d %-2d %-2d %-2d %-2d \n"
, frequency [1] , frequency [2] , frequency [3] , frequency [4] , frequency [5] , frequency [6]
);
}
public static void count6()
{
int count;
int frequency[] = new int[7];
frequency[1] = 7;
count = 1;
while (count <= 6)
{
frequency[count] = count + 6;
count++;
}
System.out.printf
(
"%-2d %-2d %-2d %-2d %-2d %-2d \n"
, frequency [1] , frequency [2] , frequency [3] , frequency [4] , frequency [5] , frequency [6]
);
}
public static void main(String[] args)
{
int num1 = 1;
int num2 = 2;
int num3 = 3;
int num4 = 4;
int num5 = 5;
int num6 = 6;
int num = 0;
while (num < 7)
{
System.out.printf ("%-3d", num++);
}
System.out.println();
System.out.printf ("%d: ", num1);
Dice.count1();
System.out.printf ("%d: ", num2);
Dice.count2();
System.out.printf ("%d: ", num3);
Dice.count3();
System.out.printf ("%d: ", num4);
Dice.count4();
System.out.printf ("%d: ", num5);
Dice.count5();
System.out.printf ("%d: ", num6);
Dice.count6();
String sumStr = "Sum";
String frequencyStr = "Frequency";
String percentageStr = "Percentage";
System.out.printf ("%-5s %-12s %s", sumStr, frequencyStr, percentageStr);
System.out.println();
Random rollDie = new Random();
for (int i = 1; i <= 36000; i++)
{
int die1 = 1 + rollDie.nextInt ((6));
int die2 = 1 + rollDie.nextInt ((6));
int sum = die1 + die2;
}
int count = 2;
while (count <= 12)
{
int frequency = 1003;
double minusFrequency = 36000 - frequency;
double divideTotal = minusFrequency/36000;
double percentageTotal = divideTotal * 100;
double calculatePercentage = 100 - percentageTotal;
double percentage = calculatePercentage;
int sumCount = count++;
System.out.printf ("%3d %11d %12.1f%% \n",sumCount, frequency, percentage);
}
}
}
任何幫助,將不勝感激。
謝謝,雅各布
switch語句可通過'頻率來代替'sum-2] + = 1;' –
我試圖實現你的方法,但是當編碼公式來計算百分比時,它會打印多個值都是0的值。我通過爲其中一個數組元素添加打印語句來測試您的方法,並且它正在生成我假設爲36000個不同的值。 – user3440443
我很困惑,爲什麼我會得到36000個不同的值。我需要做的是計算每次出現的總和數量,我認爲每次都會有所不同。 – user3440443