Estou precisnado fazer combinações entre alguns números do tipo:
conjunto de números : 1,2,3,4,5
teria que gerar todas as combinações em grupos de 3, até ai ótimo só fazer 3 “for” um dentro do outro e está resolvido, só que tenho dois problemas o conjunto de números e o números de dezenas no grupo podem variar.
exemplo:
conjunto: 1,2,3,4,5
grupos de 3 dezenas
conjunto: 3,4,5,7,14,15
grupos de 4 dezenas
alguém poderia me ajudar com uma lógica para resolver o problema.
Assim ó:
eu tenho um universo de dezenas que vai de 1 a 10 por exemplo.
ai eu tenho que em determinado momento combinar essas dezenas em grupos de 3
exemplo: 1,2,3 - 1,2,4 - 1,2,5 - 1,2,6 - 1,2,7 … 3,4,5 … etc etc …
ai em outro determinado momento eu tenho que combinar essas dezenas em grupo de 5
exemplo: 1,2,3,4,5 - 1,2,3,4,6 - 1,2,3,4,7 … etc etc
Nesse caso você quis conjuntos de 3 elementos com os caracteres de 1 a 9? Se for, enxerguei um erro: o mesmo caractere não pode aparecer duas vezes no conjunto.
Tanto faz aparecer ou não, o meu problema não é combinar grupos fixos, pois para isso eu faço “for” como fiz, o problema e fazer uma combinação com grupos de qtdes diferentes como explicitado anteriormente…
pmlm gostei da sua solução, mas queria que a coisa fosse mais dinâmica queria chamar um método mais ou menos assim gerarCombinacoes(a,b,y) onde a seria o número inicial a ser gerado, b seria o número final e y a qtde de numeros do grupo
exemplo:
Mas o que queres aqui é diferente do que queres no posto inicial. De qualquer forma já tens ali a base do algoritmo, podes tentar alterar sem esperar que alguém faça tudo para ti.
pmlm longe de mim querer que alguém me entregue algo pronto, postei essa dúvida para que possamos discutir uma melhor forma de fazer isso, o que você postou ajuda sim, mas não acredito ser a melhor solução principalmente no quesito performance.
mas valeu por tentar ajudar e espero continuarmos a trocar idéia para resolver isso.
eu não sei se entendi direito mas veja se eh isso mesmo…
[code]int X = número de elementos no grupo, especificado pelo usuario
int Z = numero de grupos que vao ser gerados
int contador = 0
while ( contador < Z ) {
X = usuario escolhe um numero de elementos no grupo
for ( int i = 0, i < X; i ++ ) {
System.out.print( Math.random()*10 + "," );
}
System.out.println("");
contador++;
}[/code]
podia usar 2 for, mas assim da pra vc entender melhor a idéia =p
como vc nao diz em q momento ele escolhe o numero de elementos, eu calculei q era na geração de cada grupo mas dae vc q sabe… pode criar uma constante definindo o numero de vezes que serão sorteados cada vez que ele escolher um numero de elementos no grupo sei la ( nesse caso o X teria que sair do while )… vai do q vc quiser