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

[SOLUCIONADO] Permutacion - Combinacion - No importa el Orden

Estas en el tema de Permutacion - Combinacion - No importa el Orden en el foro de Java en Foros del Web. Hola, estoy iniciando con Java y necesito hacer un algoritmo donde ingrese un arreglo por ejemplo {a,b,c} y el debe darme las combinaciones posibles sin ...
  #1 (permalink)  
Antiguo 09/03/2013, 21:59
Avatar de SantyXDz  
Fecha de Ingreso: noviembre-2011
Ubicación: Colombia
Mensajes: 3
Antigüedad: 12 años, 5 meses
Puntos: 0
Pregunta Permutacion - Combinacion - No importa el Orden

Hola, estoy iniciando con Java y necesito hacer un algoritmo donde ingrese un arreglo por ejemplo {a,b,c} y el debe darme las combinaciones posibles sin que se repitan y sin que se sean iguales en posiciones diferentes ("ab" seria lo mismo que "ba"), esto lo debe usar por ejemplo para encontrar las posiciones en que una serie de equipos pueden jugar en un campeonato (sin que juegen contra si mismos, ni que jueguen el mismo partido).
en el caso de que ingrese {a,b,c} debe resultar ab, ac, bc.
en el caso de que ingresara {a,b,c,d} debe resultar ab, ac ad, bc, bd, cd
se que la formula matemática es esta para las combinaciones sin repetición [URL="http://oi48.tinypic.com/2i75q55.jpg"]formula[/URL] : n!/(r!(n-r)!)

hasta ahora eh logrado que no se repita consigo misma (que no haya "aa","bb","cc" etc...) me falta hacer que si coloca "ab", no coloque después "ba".

esto es lo que llevo:
Código:
	void campeonato(int arreglo[]){
		int i;
		int j;
		for (i=0;i<arreglo.length;i++) {
			for (j=0;j<arreglo.length;j++) {
				if (arreglo[i]!=arreglo[j]) {
				System.out.println(arreglo[i]+" vs "+arreglo[j]);	
				}
			}
		}
	}
Gracias.

Última edición por SantyXDz; 09/03/2013 a las 22:22
  #2 (permalink)  
Antiguo 10/03/2013, 01:05
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Permutacion - Combinacion - No importa el Orden

Hola:

Simplemente haz que el bucle interno de j vaya desde i+1 hasta arreglo.length, de esta forma no se repetirán. De esta forma no se repetirán

i=0 saldrá ab ac ad ae af ...
i=1 sadrá bc bd be bf ...
i=2 saldrá cd ce cf ...

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: orden, repetir
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 18:27.