[JAVA] Ein Memo des Programms, mit dem Sie feststellen können, dass die Wahrscheinlichkeit eines Würfelwurfs etwa 1/6 beträgt

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

Ein Memo des Programms, mit dem Sie feststellen können, dass die Wahrscheinlichkeit eines Würfelwurfs etwa 1/6 beträgt
Ein Memo, das nüchtern von der Anfrage nach mehrteiligen / Formulardaten abhängig war
Ein Memo, wenn Sie den Zeitteil des Kalenders löschen möchten
Für Sie, die beklagen, dass die Konvertierung von JODConverter + LibreOffice langsam ist
Erstellen einer ArrayList, mit der Sie die Koordinaten einer zweidimensionalen Ebene eingeben und abrufen können
Über die Angelegenheit, die tendenziell mit ARG von Dockerfile verwechselt wird, einem mehrstufigen Build
Ein Programm, das die Anzahl der Wörter in einer Liste zählt
Ein Programm, das nach einer Zeichenfolge sucht und die Suchzeichenfolge gefunden hat, zeigt die Zeichenfolge vom Zeilenanfang bis kurz vor der Suchzeichenfolge an.
So beheben Sie das Problem, dass beim Stoppen der Webanwendung kein Protokollierungsprotokoll ausgegeben wird
[Anfänger] Über "Rechteckauswahl (Blockauswahl)", mit der Sie Einrückungen in mehreren Zeilen gleichzeitig korrigieren können
Wie gehe ich mit dem Typ um, den ich 2 Jahre lang über das Schreiben eines Java-Programms nachgedacht habe?
Ein Memo, das die einfache Chat-Anwendung von Node.js + socket.io enthält
So identifizieren Sie den Pfad, auf dem leicht Fehler gemacht werden können
[Android] Entwickeln Sie einen Dienst, mit dem Universitätsstudenten den Betriebsstatus von Bussen überprüfen können, die an der Universität verkehren.
[Java] Es kann glücklich sein, wenn der Rückgabewert der Methode, die null zurückgibt, Optional <> ist
Beispielprogramm, das den Hashwert einer Datei in Java zurückgibt
Was ist ein Test? ・ Über die Wichtigkeit eines Tests
Ein Programm, das die Leistung von 2 bis 100 berechnet
Ich habe ein Programm erstellt, das aus dem mit Java überladenen Prozess nach der Zielklasse sucht
Was tun gegen "Ein Server läuft bereits ...", ohne dass der Rails-Server im Terminal ausgeschaltet wurde
Bis Sie ein Java-Programm mit dem für Windows lokalen AWS SDK ausführen
Androd: Was tun gegen "The Realm befindet sich bereits in einer Schreibtransaktion in"
Machen Sie einen Rand links vom TextField
Stellen Sie die Zeit von LocalDateTime auf eine bestimmte Zeit ein
Eine Geschichte über das Erstellen eines Builders, der den Builder erbt
Ein Memo für mich, dass Objektorientierung etwas ist
Wir haben "Code-sell" veröffentlicht, einen Service, mit dem Sie Codes verkaufen können! (Persönliche Entwicklung)
[Lösung] Ein Memo, das mir schwer fiel, weil sich das Format der Sinatra-Validierung geändert hat.
Das Ende der katastrophalen Programmierung # 03 "Der Vergleich von ganzen Zahlen, wenn" a> b ", nimmt an, dass es" a - b> 0 "ist."
[Maven] Was tun, wenn Sie aufgefordert werden, ein Glas, das sich nicht im Remote-Repository befindet, in den Krieg aufzunehmen?