The last part is to print out the generated totals to see that it generates throws in accordance with the probabilities. A 6 sided dice has an average score of 3.5, so three dice should average about 10.5. The totals for 10 and 11 are roughly the same and occur about 12.5% of the time.
Here is the output of a typical run. It takes no more than a second. Because it's a console application, I included a
Console.ReadKey();To wait until you hit a key before closing.
Program Output
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
Program Listing
using System;
using System.Collections.Generic;
using System.Text;
namespace exrand
{
public class RollDice
{
private Random rnd= new Random() ;
private int[] Rolls = new int[19]; // Holds 3 to 18
public int OneDice() {
return rnd.Next(6)+1;
}
public int ThreeDice()
{
return OneDice() + OneDice() + OneDice() ;
}
public RollDice(int Count)
{
int i = 0;
for (i=3;i<=18;i++)
Rolls[ i ] =0;
for (i = 0; i < Count; i++)
{
int total = ThreeDice() ;
Rolls[total]++;
}
for (i = 3; i <= 18; i++)
{
Console.WriteLine("{0} {1}",i,Rolls[ i ]) ;
}
Console.ReadKey() ;
}
}
class Program
{
static void Main(string[] args)
{
RollDice Rand = new RollDice(10000000) ;
}
}
}

