1: /// <summary>
2: /// Escriba un programa que simule el tirar dos dados. El programa deberá utilizar
3: /// una función que genere numero aleatorios para tirar el primer dado, y despues
4: /// volver a utilizarla para tirar el segundo dado. La suma de los dos valores
5: /// debera ser calculada. Nota: en vista de que cada dado puede mostrar un valor
6: /// entero de 1 a 6 entonces la suma de los dos valores variará desde 2 hasta 12,
7: /// siendo 7 la suma más frecuente y 2 y 12 las menos frecuentes. Su programa debera
8: /// tirar 36000 veces los dos dados. Utilice un arreglo de una dimensión para llevar
9: /// cuenta del número de veces que aparece cada suma posible. Imprima los resultados
10: /// en un formato tabular. Tambien determine si los totales son razonables, es decir,
11: /// existen seis formas de llegar a un 7, por lo que aproximadamente una sexta parte
12: /// de todas las tiradas deberán ser 7
13: /// </summary>
14: static void Ejercicio4()
15: {
16: Console.Clear();
17: Console.WriteLine("Laboratorio 3 - Ejercicio 4");
18:
19: int[] valores = new int[13]; // Necesito el subindice 12
20: int suma = 0;
21: const int MAX = 360000; // Cantidad de tiradas a realizar
22: // Inicialización del arreglo
23: for (int i = 0; i < valores.Length; ++i)
24: {
25: valores[i] = 0;
26: }
27: // Simulación de tirar dados y cuenta los valores obtenidos
28: for (int i = 0; i < MAX; ++i)
29: {
30: suma = TirarDado() + TirarDado();
31: valores[suma] += 1;
32: }
33: // Muestra los resultados
34: for (int i = 2; i <= 12; ++i)
35: {
36: Console.WriteLine("{0,3} - {1,8} - {2,8}%", i, valores[i], ((float) valores[i] / MAX * 100).ToString("#0.00"));
37: }
38:
39: Console.ReadKey();
40: }
41:
42: /// <summary>
43: /// Este objeto se utiliza para generar números pseudoaleatorios
44: /// </summary>
45: private static Random generador = new Random();
46:
47: /// <summary>
48: /// Simula el hecho de tirar un dado, los posibles valores van del 1 al 6
49: /// se utiliza un objeto que genera números pseudoaleatorios
50: /// </summary>
51: /// <returns>Valor simulado 1,2,3,4,5,6</returns>
52: private static int TirarDado()
53: {
54: return generador.Next(1, 7);
55: }