Alguem me dê ideias de um algoritmo para fazer combinações, por exemplo:
k de n, onde k é o numero de elementos que quero combinar e n o total de numeros:
por exemplo:
k=3 e n=5
- quero a saída ({1,2,3}, {1,2,4}, {1,2,5}, {1,3,4},{1,3,5},{1,4,5}), a ordem não importa. e elementos não podem repetir.
por incrivel que pareça isso não é um trabalho de escola.
Agradeço sugestões.
Amigo se você estudar o que está aqui: http://www.ime.usp.br/~pf/mac0122-2003/aulas/permut.html, vai ficar facinho.
Meu código faz as combinações que eu quero, mas ele está amarrado a combinações com 03 números, alguem pode me dar uma ideia como de fato posso usar o k, ou seja como faço para que este código faça combinações com grupos de k’s numeros.
public static void combinacao(int k,int n) {
int max = n + 1 - k;
//Pega os numero informado e adicona no array
for(int i=1; i<=max; i++){
for(int j=i+1; j<=n; j++){
for(int l=j+1; l<=n; l++){
System.out.print(i+" "+j+" "+l+" \n");
}
}
}
}
Atenciosamente