elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  [JAVA] Ayuda con algoritmo "Todos contra todos"
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [JAVA] Ayuda con algoritmo "Todos contra todos"  (Leído 5,221 veces)
[GB]

Desconectado Desconectado

Mensajes: 30


Ver Perfil
[JAVA] Ayuda con algoritmo "Todos contra todos"
« en: 15 Septiembre 2010, 20:17 »

Resulta que tengo que implementar el algoritmo "todos contra todos" en java, o sea para una liga... en este caso es de futbol.
Luego de estar horas quemandome el coco buscando la forma de poder enfrentarlos todos contra todos sin repeticiones de enfrentamientos probando algoritmos en hoja y papel sin exito, al final como manotazo de ahogado se me da por buscar en google y me ecuentro con este algoritmo que si sirve: http://es.wikipedia.org/wiki/Sistema_de_todos_contra_todos

El tema del algoritmo es asi:

Equipos            Enfrentamientos  

1 2 3 4 5 6   ---> 1vs6 --- 2vs5  -- 3vs4
1 6 2 3 4 5   ---> 1vs5 --- 6vs4  -- 2vs3
1 5 6 2 3 4   ---> 1vs4 --  5vs3  -- 6vs2
1 4 5 6 2 5   ---> 1vs3 --  4vs2  -- 5vs6
1 3 4 5 6 2   ---> 1vs2 --  3vs6  -- 4vs5

La cosa es asi: para determinar el calendario del torneo, se realiza un simple algoritmo de selección... a cada uno de los competidores (en este caso 1 2 3 4 5 6 a la izquieda) se le asigna un número y se van rotando los números, dejando uno fijo (en este caso el 1)

Se procede a "enfrentar" el primero contra el ultimo, el segundo contra el penultimo, el tercero contra el antepenultimo y todo asi... sumando uno del lado izquierdo y restando uno del lado derecho, de tal manera suponiendo que tengamos 6 equipos 1 2 3 4 5 6 los enfrentamientos serian: 1vs6 --- 2vs5  -- 3vs4, etc etc luego para el siguiente mentenemos el 1 fijo y vamos cambiando la segunda posicion.

Bueno el tema es que voy a empezar con la funcion de generarPartido primero y tengo dudas...
Código
  1. public static void generarPartidos() {
  2.  
  3.    int cantCuadros = 5;
  4.    int cantMaxEncuentros=3;
  5.  
  6.    String[] arrEncuentros = new String [cantMaxEncuentros];    
  7. String [] arrCuadros = new String[5];
  8. arrCuadros[0] = "River";
  9. arrCuadros[1]="Boca";
  10. arrCuadros[2]="Newells";
  11. arrCuadros[3]="Indepentiente";
  12. arrCuadros[4]="Estudiantes";
  13. arrCuadros[5]="Velez";
  14.  
  15. for( int i=0; i<cantMaxEncuentros; i ++ ){
  16.  
  17.  
  18.       }
  19.  
  20.    }


Lo que intento hacer es guardar dentro de arrEncuentros en cada posicion los enfrentamientos.. en este caso serian 3 por cada llamada a la funcion "generarPartidos" no tengo mucha idea de como asignar. La idea es que el arrCuadros se pase como parametro a la funcion y se llame varias veces mandando el vector alterado para generar el total de 15 partidos que son, pero lo estoy haciendo todo en esta solo para probar de a 3 partidos por lo menos.
Por ejemplo deberia quedarme asi en cada posicion del vector al ir imprimiendo el contenido de sus posiciones:

River– Velez
Boca – Estudiantes
Newells - Independiente

Quiero solo empezar con esta pequeña partecita y luego ire de a poco con el resto que me piden!
Alguna idea? ayudita? mano .. se agradece!


« Última modificación: 8 Julio 2011, 05:51 por Leyer » En línea

Shell Root


Desconectado Desconectado

Mensajes: 3.484


Jesus!


Ver Perfil WWW
Re: [JAVA] Ayuda con algoritmo "Todos contra todos"
« Respuesta #1 en: 15 Septiembre 2010, 20:27 »

jejeje no creo que nadie lea todo eso, -lo digo por mi-, quieres un ejemplo de como sería el algoritmo de selección en java?


En línea

[GB]

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: [JAVA] Ayuda con algoritmo "Todos contra todos"
« Respuesta #2 en: 15 Septiembre 2010, 20:30 »

Precisaría algún ejemplo pero con vectores, es que tengo que hacerlo con vectores... y no me manejo muy bien con eso :S
En línea

Xedrox

Desconectado Desconectado

Mensajes: 273



Ver Perfil
Re: [JAVA] Ayuda con algoritmo "Todos contra todos"
« Respuesta #3 en: 16 Septiembre 2010, 20:49 »

El algoritmo de todos contra todos es muy sencillo, agarras el primer elemento de tu vector o lista y lo comparas con todos hasta el final, luego agarras el segundo elemento su siguiente hasta el final, luego con el tercero y así sucesivamente.., obviamente esa técnica no te va dejar repeticiones.
En línea

sabeeee

Desconectado Desconectado

Mensajes: 70


Ver Perfil
Re: [JAVA] Ayuda con algoritmo "Todos contra todos"
« Respuesta #4 en: 8 Julio 2011, 01:09 »

ehh, borra a Riber
En línea

"Vengándose, uno iguala a su enemigo; perdonando, uno se muestra superior a él."
Francis Bacon
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines