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.
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
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