Bonjour tout le monde ,
je suis en train d'apprendre les bases du C#, je débute avec ce langage comme en programmation en général (excepté un peu de Basic au collège).
Je me suis donné un exercice consistant à simuler des lancers de dé à six faces en utilisant Random et à vérifier la distribution des résultat de ces lancers.
Jusqu'ici tout va bien sauf que, lorsque je vérifie le total de pourcentage (normalement 100%) je tombe sur 96 ou 97 ou 98%
Sauriez vous expliquer si j'ai fais une erreur quelque part dans mes calculs ou si il y a une mécanique invisible qui est à l'œuvre ici?
Merci d'avance pour votre temps et vos éventuelles réponses.
Le code en question :
Le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 namespace ConsoleApp3 { class Testeur { static void Main(string[] args) { int un = 0, deux = 0, trois = 0, quatre = 0, cinq = 0, six = 0, compte = 0, result = 0; begin: compte += 1; Random rnd = new Random(); result = rnd.Next(1, 7); switch(result) { case 1: un += 1; break; case 2: deux += 1; break; case 3: trois += 1; break; case 4: quatre += 1; break; case 5: cinq += 1; break; case 6: six += 1; break; }; if (compte == 100000) { int totalPerCent = 0; un = un / 1000; deux = deux / 1000; trois = trois / 1000; quatre = quatre / 1000; cinq = cinq / 1000; six = six / 1000; totalPerCent = un + deux + trois + quatre + cinq + six; Console.WriteLine("Il y a " + un + "% de lancers de valeur 1"); Console.WriteLine("Il y a " + deux + "% de lancers de valeur 2"); Console.WriteLine("Il y a " + trois + "% de lancers de valeur 3"); Console.WriteLine("Il y a " + quatre + "% de lancers de valeur 4"); Console.WriteLine("Il y a " + cinq + "% de lancers de valeur 5"); Console.WriteLine("Il y a " + six + "% de lancers de valeur 6"); Console.WriteLine("Ce qui donne " + totalPerCent + "% !!??!!"); Console.ReadKey(true); } else goto begin; } static int RollDice(int result) { Random rnd = new Random(); result = rnd.Next(1, 7); return result; } } }
Partager