Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Labo_09
- {
- class Program
- {
- static void Main(string[] args)
- {
- int nbFaces;
- int nbDes;
- Console.Write("Indiquez le nombre de faces que possède les dés ; ");
- nbFaces = int.Parse(Console.ReadLine());
- Console.Write("Indiquez le nombre de dés ; ");
- nbDes = int.Parse(Console.ReadLine());
- int nbDeLancers = LireNombreDeLancers();
- Console.WriteLine("le blabla est {0}", nbDeLancers);
- CréerDistribution(nbDes, nbFaces);
- Random generateur;
- generateur = new Random();
- double nbGenere = generateur.NextDouble();
- int[,] distribution = CréerDistribution(nbDes, nbFaces);
- AfficherDistribution(distribution, nbDeLancers);
- }
- static int LireNombreDeLancers()
- {
- int nbDeLancers;
- const int MAX_LANCER = 10000;
- const int MIN_LANCER = 500;
- Console.WriteLine("Combien de lancers y aura-t-il? (Entre 500 et 10 000) : ");
- nbDeLancers = int.Parse(Console.ReadLine());
- while (nbDeLancers <= MIN_LANCER || nbDeLancers >= MAX_LANCER)
- {
- Console.WriteLine("La valeur doit être entre 500 et 10000");
- nbDeLancers = int.Parse(Console.ReadLine());
- }
- return nbDeLancers;
- }
- static int[,] CréerDistribution(int nbDes, int nbFaces)
- {
- int[,] distribution = new int[nbDes, nbFaces];
- int cpt = 1;
- for(int numDes = 0; numDes < distribution.GetLength(1); numDes++)
- {
- for(int numFaces=0; numFaces< distribution.GetLength(0); numFaces++)
- {
- distribution[numDes, numFaces] = cpt;
- cpt++;
- }
- }
- return distribution;
- }
- static void SimulerLancerDesDes(int nbDes, int nbFaces, int[,] distribution, int nbLancers, Random generateur)
- {
- int somme;
- for (int i = 0; i < nbLancers; i++)
- {
- somme = RoulerDes(nbDes, nbFaces, generateur);
- distribution[somme-nbDes] += 1;
- }
- }
- static int RoulerDes(int nbDes, int nbFaces, Random generateur)
- {
- int somme = 0;
- for (int numLancer = 0; numLancer < nbDes; numLancer++)
- {
- int resultat = RoulerDe(nbFaces, generateur);
- somme = somme + resultat;
- }
- return somme;
- }
- static int RoulerDe(int nbFaces, Random generateur)
- {
- const int BORNE_MIN = 1;
- int borneMax = nbFaces + 1;
- int resultat = generateur.Next(BORNE_MIN, borneMax);
- return resultat;
- }
- static void AfficherDistribution(int[,] distribution, int nbLancers)
- {
- const int MAX = 100;
- const int NB_DE_DES = 2;
- const int NB_DE_FACES = 6;
- Console.WriteLine($"Distribution de {nbLancers} lancers de {NB_DE_DES} dés à {NB_DE_FACES} faces");
- for(int i = 0; i < distribution.Length; i++)
- {
- double proportion = distribution[i] / nbLancers;
- string histogramme = CreerBarreHistogramme(MAX, proportion);
- Console.WriteLine("Somme des dés : {NB_DE_DES} proportion {proportion} % = {histogramme}");
- }
- }
- static string CreerBarreHistogramme(int max, double proportion)
- {
- return new string('#', (int)Math.Round((max * proportion), 0, MidpointRounding.AwayFromZero));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement