Java - Algoritmo para nivelar dos equipos

 
Vista:

Algoritmo para nivelar dos equipos

Publicado por MFaroppa (3 intervenciones) el 25/10/2016 19:55:59
Estoy por hacer un programa para nivelar dos equipos de fútbol, y no se me ocurre un algoritmo para hacerlo.

La cosa es así. Cada equipo va a tener, supongamos, 5 jugadores. Cada jugador tendrá dos atributos enteros: ataque y defensa. La idea es hacer un método que se ingrese como parámetro un vector con todos los jugadores mezclados y genere otros dos vectores de forma que comparando los niveles de ataque y defensa de uno y otro sean lo más similares posible.

Alguna idea?

Saludos.
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

Algoritmo para nivelar dos equipos

Publicado por YYanes (144 intervenciones) el 25/10/2016 20:39:22
Hola amigo:
no puedo darle la solución en código (pues ahora mismo no tengo tiempo para escribirlo), pero puedo darle una solución teórica:

primero escriba un algoritmo que ordene a todos los jugadores disponibles, preferiblemente por una media entre ataque y defensa, es decir: valor = (ataque+defensa)/2. Luego de que el listado esté ordenado, ve pasando los jugadores para un equipo y otro respectivamente, y como los está extrayendo ordenadamente de una lista ambos equipos estarán bastante equilibrados entre sí.
Por ejemplo, hágase idea de que los jugadores son números enteros, y mientras más grande el número, mejor es el jugador, podría ser:

2, 9, 6, 3, 7, 7, 8, 2, 5, 5
al ordenar la lista de mayor (los más fuertes) a menor (los más débiles), quedaría: 9, 8, 7, 7, 6, 5, 5, 3, 2, 2; ahora distribúyalos, uno por uno e intercalando los equipos, así:

Equipo A: 9, 7, 6, 5, 2 (media del equipo: 5,8)
Equipo B: 8, 7, 5, 3, 2 (media del equipo: 5)

Se parecen los resultados, ¿verdad? Nunca quedará 100% parejo, pues habría que considerar otras variables, pero al menos es un comienzo...

Un GigaSaludo!!!
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

Algoritmo para nivelar dos equipos

Publicado por MFaroppa (3 intervenciones) el 25/10/2016 23:54:29
Pensé en la misma solución, pero el problema de ese planteo es que, por ejemplo, si hay un jugador que es mucho mejor que el resto se va a perder el equilibrio. De todas formas es una solución viable.

Gracias por responder. Un saludo!
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

Algoritmo para nivelar dos equipos

Publicado por MFaroppa (3 intervenciones) el 31/10/2016 20:53:49
Alguna idea?
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

Algoritmo para nivelar dos equipos

Publicado por YYanes (144 intervenciones) el 01/11/2016 14:04:58
Puedes probar otra variante, por ejemplo:

tomas el mejor jugador disponible para un equipo, y luego tomas el más malo; pasas al otro equipo, e igualmente le asignas el mejor disponible y luego el más malo. Eso hará que se asignen jugadores de 2 en 2 a ambos equipos (el mejor+el peor para uno, luego el mejor+el peor para el otro), pero como la cantidad de jugadores es impar, para elegir al jugador final elijes al mejor disponible para cada uno. Prueba esa variante, pero de cualquier manera nunca los equipos te van a quedar perfectamente equilibrados, el asunto es reducir esa diferencia tanto como se pueda, pero si te pones a considerar TODAS las variables posibles, y todos los casos que te pudieran surgir, entonces lo que necesitarás es un código basado en redes neuronales e inteligencia artificial...

Un GigaSaudo.
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