Java - Simulador deportivo

 
Vista:

Simulador deportivo

Publicado por nacional100 (2 intervenciones) el 08/11/2015 15:48:32
Buenas a todos.
Estoy intentando programar un simulador de partido de futbol, y me he encontrado con el siguiente problema.

Supongamos q hay dos equipos A y B. Para cada minuto del partido, Hay un 10% de probabilidad de que A tenga una chance de gol, y un 25% de que la chance sea aprovechada.
Lo mismo para B, con 20% de tener chance y 40% de anotarla.

¿Cual es la forma mas conveniente de simular y obtener un resultado de acuerdo a un numero aleatorio generado? Supongamos que obtengo un random entre 0 y 100. Es facil decir:

if (random<10)
//Chance de gol para A;
else if (random>10&&random<(10+20))
//Chance para B;

El problema es que dentro de "Chance para A" hay cierta probabilidad de que sea gol. Y quizas la cadena de eventos sea mas larga, por ejemplo si es gol para A, hay un 35% de chances de que sea de cabeza, 5% de tiro libre, etc.
Entonces ese método de generar un random y "mapearlo" para ver en que zona cae es ineficiente y dificil de implementar.

Seguramente el método les pareza absurdo a algunos, pero es lo que se me ha ocurrido. No soy muy experiente con la programacion. ¿Como deberia trabajar el simulador con el "seed" aleatorio que recibe, para decidir que tipo de evento devuelve, segun cierta tabla de probabilidades?

Gracias a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Simulador deportivo

Publicado por Lawliet (303 intervenciones) el 08/11/2015 21:43:37
Hola...

Siento que lo que haces sería la forma conveniente de hacerlo, ya que como tu mencionas, existe una posibilidad para cada equipo dependiendo del numero que resulta, ahora bien, creo que yo lo haría de la siguiente manera, generar un numero aleatorio entre 1 y 2, donde el 1 representa al equipo A y el 2 representa al equipo B, y posteriormente dependiendo del número que se genero mandar a llamar el método correspondiente a cada equipo para realizar la operación. De esa manera cada equipo tendrá su método correspondiente y no mezclamos los números para ambos equipos. Al final de cuentas es algo que no podrías evitar, las validaciones ^^.

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar