Ungefähr zwei Monate sind vergangen, seit ich angefangen habe, Java zu studieren. Ich habe ein Programm geschrieben, das die Konvergenz der Wahrscheinlichkeit bestätigen kann, dass die Würfel als Zusammenfassung der zugrunde liegenden Variablen, Arrays, Methoden usw. erscheinen. Führen Sie es auf dem Terminal aus und geben Sie eine beliebige Anzahl von Malen ein, um das Ergebnis in einem Diagramm anzuzeigen und die Wahrscheinlichkeit für jedes zu berechnen. Wenn Sie es ungefähr 20.000 Mal schütteln, ist es sehr nahe an 1/6.
Dice_Probability.java
import java.util.Scanner;
import java.util.Random;
public class Dice_Probability{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.print("Geben Sie ein, wie oft Sie würfeln möchten> ");
int times = scan.nextInt();
int[] result = generateDice(times);
System.out.println("Zeigen Sie das Ergebnis an");
for (int i=0; i<result.length; i++){
System.out.printf("%2d", result[i]);
if((i+1) % 10 ==0){
System.out.println("");
}
}
System.out.println("Es ist wie folgt, wenn es in einem Diagramm ausgedrückt wird.");
drawGraph(result);
System.out.println("Die Wahrscheinlichkeit jedes Auges ist");
double[] percentage = calcProbability(result);
for (int i=0; i<percentage.length; i++){
System.out.println((i+1) + "Augen: " + percentage[i]);
}
}
public static int[] generateDice(int n){
Random rand = new Random();
int[] arr = new int[n];
for (int i=0; i<arr.length; i++){
arr[i] = rand.nextInt(6) + 1;
}
return arr;
}
public static void drawGraph(int[] arr){//Diagrammanzeigemethode
int[] dottimes = {0,0,0,0,0,0};//Notieren Sie, wie oft die Augen erscheinen
for (int i=0; i<arr.length; i++){
switch (arr[i]){
case 1:
dottimes[0]++;
break;
case 2:
dottimes[1]++;
break;
case 3:
dottimes[2]++;
break;
case 4:
dottimes[3]++;
break;
case 5:
dottimes[4]++;
break;
case 6:
dottimes[5]++;
break;
}
}
for (int i=0; i<=5; i++){
System.out.print((i+1) + " : ");//Anzeige von Rollen
for(int j=0; j<dottimes[i]; j++){//1~dice[i]Mal*Show
System.out.print("*");
}
System.out.println("");//Neue Zeile
}
}
public static double[] calcProbability(int[] arr){//Methode zur Berechnung der Wahrscheinlichkeit. Empfängt Augendaten und gibt die Wahrscheinlichkeit jedes Auges zurück
int[] dottimes = {0,0,0,0,0,0};
for (int i=0; i<arr.length; i++){
switch (arr[i]){
case 1:
dottimes[0]++;
break;
case 2:
dottimes[1]++;
break;
case 3:
dottimes[2]++;
break;
case 4:
dottimes[3]++;
break;
case 5:
dottimes[4]++;
break;
case 6:
dottimes[5]++;
break;
}
}
double[] probability = {0,0,0,0,0,0};
for (int i=0; i<dottimes.length; i++){
probability[i] = (double)dottimes[i]/arr.length;
}
return probability;
}
}
Recommended Posts