Cum rostogol zarurile în C #?

Această aplicație folosește o instanță din Aleatoriu() clasa în obiect RND. De asemenea, alocă suficient spațiu pentru a reține totalurile pentru scorurile 3 ... 18 din tablou Rolls []. Funcțiile membrilor OneDice () returnează o valoare între 1 și 6 - rnd.Next (n) returnează valori în intervalul 0 ... n-1, în timp ce ThreeDice () apeluri OneDice () de trei ori. Constructorul pentru RollDice () curăță Rolls array apoi apelează ThreeDice () oricât de multe ori (10 milioane în acest caz) și crește corespunzător Rolls [] element.

Ultima parte este de a tipări totalurile generate pentru a vedea că generează aruncări în conformitate cu probabilitățile. Un zar cu 6 fețe are un scor mediu de 3,5, deci trei zaruri ar trebui să medieze aproximativ 10,5. Totalurile pentru 10 și 11 sunt aproximativ aceleași și apar aproximativ 12,5% din timp.

Iată rezultatul unei rulări tipice. Nu durează mai mult de o secundă. Deoarece este o aplicație de consolă, am inclus o

 Console.ReadKey (); 

Așteptați până atingeți o tastă înainte de a închide.

Ieșirea programului

 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

Listare de programe

 folosind Sistem;
folosind System.Collections.Generic;
folosind System.Text;
exrand spațiu de nume

    clasa publică RollDice
    
        private Random rnd = new Random ();
        private int [] Rolls = new int [19]; // Ține 3 până la 18
        public int OneDice ()
            returnare rnd.Următorul (6) +1;
        
        public int ThreeDice ()
        
            returna OneDice () + OneDice () + OneDice ();
        
        public RollDice (număr cont)
        
            int i = 0;
            pentru (i = 3; i