Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda con algoritmo "todos contra todos"

Estas en el tema de Ayuda con algoritmo "todos contra todos" en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/09/2010, 12:24
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1
Antigüedad: 13 años, 7 meses
Puntos: 1
Ayuda con algoritmo "todos contra todos"

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

public static void generarPartidos() {

int cantCuadros = 5;
int cantMaxEncuentros=3;

String[] arrEncuentros = new String [cantMaxEncuentros];
String [] arrCuadros = new String[5];
arrCuadros[0] = "River";
arrCuadros[1]="Boca";
arrCuadros[2]="Newells";
arrCuadros[3]="Indepentiente";
arrCuadros[4]="Estudiantes";
arrCuadros[5]="Velez";

for( int i=0; i<cantMaxEncuentros; i ++ ){


}

}


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!
  #2 (permalink)  
Antiguo 16/09/2010, 08:10
Avatar de genuine_carlosV2  
Fecha de Ingreso: noviembre-2008
Ubicación: 127.0.0.1
Mensajes: 296
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Ayuda con algoritmo "todos contra todos"

Si, una idea:
Pon un código y te lo corregiremos pero si no lo intentas, no podemos decirte donde fallas.

Si no tienes mucha idea de Java, empieza por leerte un buen tutorial (en Internet los hay a patadas). Una vez leido un manual, bucea en la API de Java para ver como debes llamar a las funciones, etc
__________________
Carlos

Recoger datos es solo el primer paso hacia la sabiduría. Pero compartir información es el primer paso hacia la comunidad. - IBM

Etiquetas: contra, algoritmos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:31.