Hur rullar jag tärningar i C #?

Denna applikation använder en instans av Slumpmässig() klass i objektet rnd. Det tilldelar också tillräckligt med utrymme för att hålla totalen för poäng 3 ... 18 i matrisen Rullar []. Medlemsfunktioner OneDice () returnerar ett värde mellan 1 och 6 - rnd.Next (n) returnerar värden i intervallet 0… n-1 medan ThreeDice () samtal OneDice () tre gånger. Byggaren för Kasta tärning() rensar Rolls array samtal sedan ThreeDice () dock många gånger (10 miljoner i det här fallet) och ökar det lämpliga Rullar [] element.

Den sista delen är att skriva ut de genererade totalen för att se att den genererar kast i enlighet med sannolikheterna. En 6-sidig tärning har en genomsnittlig poäng på 3,5, så tre tärningar bör i genomsnitt vara cirka 10,5. Totalen för 10 och 11 är ungefär desamma och förekommer cirka 12,5% av tiden.

Här är utgången från en typisk körning. Det tar inte mer än en sekund. Eftersom det är en konsolapplikation, inkluderade jag en

 Console.ReadKey (); 

Att vänta tills du trycker på en knapp innan du stänger.

Programutgång

 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

Programlista

 använder System;
med hjälp av System.Collections.Generic;
med System.Text;
namnutrymme

    offentlig klass RollDice
    
        privat slumpmässigt rnd = nytt slumpmässigt ();
        privat int [] Rolls = new int [19]; // Har 3 till 18
        public int OneDice ()
            return rnd.Nästa (6) +1;
        
        public int ThreeDice ()
        
            returnera OneDice () + OneDice () + OneDice ();
        
        public RollDice (int Count)
        
            int i = 0;
            för (i = 3; i