Denna applikation använder srand () funktion för att fröa slumptalsgeneratorn. Funktionen Random (n) returnerar ett heltal inom intervallet 1 till n.
Int array totaler har totalt antal för poängen 3 till 18. Den slingrar sedan 10 miljoner gånger. Detta nummer definieras som en const, men om din kompilator inte stöder const, avmarkera #definiera istället.
Varje tärning, d1, d2 och d3 har Slumpmässig() genererad tärningsrullstansrulle och elementet för den kombinerade tärningsscore (inom området 3-18) ökas.
Den sista delen skriver ut 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.
Rulla tio miljoner tärningar
// dicerolls.c:
#include / * Behövs bara för srandfrö * /
#inkludera
#inkludera
const tenmillion = 1000000L;
/ * # definiera tenmillion 10000000L * /
void Randomize ()
srand ((osignerad) tid (NULL));
int Slumpmässigt (int Max)
avkastning (rand ()% Max) + 1;
int main (int argc, char * argv [])
int i;
intotalen [19];
printf ("Rolling Ten Million Dice \ n");
Slumpmässigt ();
för (i = 3; i<=18;i++)
totalen [i] = 0;
för (i = 0; i< tenmillion;i++)
int d1 = slumpmässigt (6);
int d2 = slumpmässigt (6);
int d3 = slumpmässigt (6);
int totalt = d1 + d2 + d3;
totala [totalt] ++;
för (i = 3; i<=18;i++)
printf ("% i% i \ n \ r", i, totalt [i]);
retur 0;