Esta aplicación utiliza una instancia de la Aleatorio() clase en el objeto rnd. También asigna suficiente espacio para contener los totales de puntajes 3 ... 18 en la matriz Rollos []. Funciones miembro OneDice () devuelve un valor entre 1 y 6 - rnd.Next (n) devuelve valores en el rango 0 ... n-1, mientras que ThreeDice () llamadas OneDice () tres veces. El constructor para el Tirar el dado() despeja el Rollos matriz luego llama ThreeDice () Sin embargo, muchas veces (10 millones en este caso) e incrementa el apropiado Rollos [] elemento.
La última parte es imprimir los totales generados para ver que genera lanzamientos de acuerdo con las probabilidades. Un dado de 6 lados tiene un puntaje promedio de 3.5, por lo que tres dados deben promediar aproximadamente 10.5. Los totales para 10 y 11 son aproximadamente los mismos y ocurren aproximadamente el 12.5% del tiempo.
Aquí está el resultado de una ejecución típica. No lleva más de un segundo. Debido a que es una aplicación de consola, incluí un
Console.ReadKey ();
Para esperar hasta presionar una tecla antes de cerrar.
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
utilizando el sistema;
usando System.Collections.Generic;
usando System.Text;
espacio de nombres exrand
clase pública RollDice
Private Random rnd = new Random ();
int privado [] Rolls = nuevo int [19]; // Tiene de 3 a 18
public int OneDice ()
return rnd.Next (6) +1;
public int ThreeDice ()
volver OneDice () + OneDice () + OneDice ();
RollDice público (int Count)
int i = 0;
para (i = 3; i