[JAVA] Un mémo du programme que vous pouvez réaliser que la probabilité de lancer des dés est d'environ 1/6

Environ deux mois se sont écoulés depuis que j'ai commencé à étudier Java. J'ai écrit un programme qui peut confirmer la convergence de la probabilité que les dés apparaissent comme un résumé des variables sous-jacentes, des tableaux, des méthodes, etc. Exécutez-le sur le terminal et entrez n'importe quel nombre de fois pour afficher le résultat dans un graphique et calculer la probabilité de chacun. Si vous le secouez environ 20 000 fois, il sera très proche de 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("Entrez le nombre de fois que vous voulez lancer les dés> ");
        int times = scan.nextInt();
        
        int[] result = generateDice(times);
        
        System.out.println("Afficher le résultat");
        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("Il est comme suit lorsqu'il est exprimé dans un graphique.");
        drawGraph(result);
        
        System.out.println("La probabilité de chaque œil est");
        double[] percentage = calcProbability(result);
        for (int i=0; i<percentage.length; i++){
        	System.out.println((i+1) + "Yeux: " + 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){//Méthode d'affichage du graphique
        int[] dottimes = {0,0,0,0,0,0};//Enregistrez le nombre de fois où les yeux apparaissent
        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) + " : ");//Affichage des rouleaux
        	for(int j=0; j<dottimes[i]; j++){//1~dice[i]Fois*Spectacle
            	System.out.print("*");
            }
            System.out.println("");//nouvelle ligne
        }
    }
    
    public static double[] calcProbability(int[] arr){//Méthode de calcul de la probabilité. Reçoit les données oculaires et renvoie la probabilité de chaque œil
        
        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

Un mémo du programme que vous pouvez réaliser que la probabilité de lancer des dés est d'environ 1/6
Un mémo sobrement accro à la demande de multipart / form-data
Un mémo lorsque vous souhaitez effacer la partie horaire de l'agenda
A vous qui regrettez que la conversion de JODConverter + LibreOffice soit lente
Créer une ArrayList qui vous permet de lancer et de récupérer les coordonnées d'un plan bidimensionnel
À propos du sujet qui a tendance à être confondu avec ARG de Dockerfile qui est une construction en plusieurs étapes
Un programme qui compte le nombre de mots dans une liste
Un programme qui recherche une chaîne de caractères, et lorsque la chaîne de caractères de recherche est trouvée, affiche la chaîne de caractères du début de la ligne juste avant la chaîne de caractères de recherche.
Comment résoudre le problème de non-sortie du journal de connexion lorsque l'application Web est arrêtée
[Débutant] À propos de "Sélection de rectangle (sélection de bloc)" qui vous permet de corriger les retraits sur plusieurs lignes à la fois
Comment gérer le type auquel j'ai pensé en écrivant un programme Java pendant 2 ans
Un mémo qui conteneurise l'application de chat simple de Node.js + socket.io
Comment identifier le chemin sur lequel il est facile de se tromper
[Android] Développer un service permettant aux étudiants universitaires de vérifier l'état de fonctionnement des bus circulant dans l'université.
[Java] Cela peut être heureux si la valeur de retour de la méthode qui retourne null est facultative <>
Exemple de programme qui renvoie la valeur de hachage d'un fichier en Java
Qu'est-ce qu'un test? ・ À propos de l'importance d'un test
Un programme qui calcule la puissance de 2 à 100
J'ai créé un programme qui recherche la classe cible à partir du processus surchargé avec Java
Que faire à propos de "Un serveur est déjà en cours d'exécution ..." qui s'est produit sans désactiver le serveur de rails dans le terminal
Jusqu'à ce que vous exécutiez un programme Java avec le SDK AWS local sur Windows
Androd: Que faire à propos de "Le Royaume est déjà dans une transaction d'écriture dans"
Faire une marge à gauche du TextField
Définir l'heure de LocalDateTime à une heure spécifique
Une histoire sur la création d'un Builder qui hérite du Builder
Un mémo pour moi que l'orientation de l'objet est quelque chose
Nous avons publié "Code-sell", un service qui vous permet de vendre des codes! (Développement personnel)
[Solution] Un mémo que j'ai eu du mal car le format de sinatra-validation a changé.
La fin de la programmation catastrophique # 03 "Comparaison d'entiers, si" a> b ", supposons que c'est" a --b> 0 ""
[Maven] Que faire si on vous demande d’incorporer dans la guerre un fichier jar qui n’est pas dans le référentiel distant