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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [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 12,492 veces)
[GB]

Desconectado Desconectado

Mensajes: 30


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

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 am por Leyer » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


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

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

Te vendería mi talento por poder dormir tranquilo.
[GB]

Desconectado Desconectado

Mensajes: 30


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

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: 274



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

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: 155


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

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:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Auxilio¡¡¡¡¡ con un BAT para borrar todos los worm "ramdom" en mi pc.
Scripting
raftv79 4 3,069 Último mensaje 31 Octubre 2009, 00:29 am
por WHK
Apple pide perdón porque "todos los iPhone" son defectuosos
Noticias
wolfbcn 4 3,465 Último mensaje 4 Julio 2010, 01:27 am
por Draklit
Fallo con repositorios: "No se pudieron descargar todos los indices..."
GNU/Linux
xxxneoxxx 0 3,775 Último mensaje 5 Septiembre 2010, 17:22 pm
por xxxneoxxx
Prueba a todos los que se crean "hackers" « 1 2 »
Desafíos - Wargames
sabeeee 17 13,507 Último mensaje 2 Octubre 2011, 21:17 pm
por roilivethelife
Fixture todos contra todos
Programación C/C++
Torino10 1 4,237 Último mensaje 7 Junio 2012, 08:41 am
por durasno
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines