Cette application utilise une instance de la Aléatoire() classe dans l'objet rnd. Il alloue également suffisamment d'espace pour contenir les totaux pour les scores 3… 18 dans le tableau Rouleaux[]. Fonctions membres OneDice () renvoie une valeur entre 1 et 6 - rnd.Next (n) renvoie des valeurs dans la plage 0… n-1, tandis que ThreeDice () appels OneDice () trois fois. Le constructeur du Roulez les dés() efface le Rouleaux tableau appelle ensuite ThreeDice () cependant plusieurs fois (10 millions dans ce cas) et incrémente la Rouleaux[] élément.
La dernière partie consiste à imprimer les totaux générés pour voir qu'il génère des lancers en fonction des probabilités. Un dé à 6 faces a un score moyen de 3,5, donc trois dés devraient en moyenne environ 10,5. Les totaux pour 10 et 11 sont à peu près les mêmes et se produisent environ 12,5% du temps.
Voici la sortie d'une exécution typique. Cela ne prend pas plus d'une seconde. Parce que c'est une application console, j'ai inclus un
Console.ReadKey ();
Attendre d'avoir appuyé sur une touche avant de fermer.
3 46665
4 138772
5 277440
6 463142
7 693788
8 971653
9 1157160
10 1249360
11 1249908
12 1159074
13 972273
14 695286
15 463270
16 277137
17 138633
18 46439
en utilisant le système;
using System.Collections.Generic;
using System.Text;
espace de noms exrand
public class RollDice
private Random rnd = new Random ();
int int [] Rolls = new int [19]; // Pour 3 à 18 personnes
public int OneDice ()
return rnd.Next (6) +1;
public int ThreeDice ()
renvoyer OneDice () + OneDice () + OneDice ();
public RollDice (int Count)
int i = 0;
pour (i = 3; i