Não encontrei um modo de resolver isso, então posto para saber se alguém já se deparou com isso.
Quero converter para um número sequencial valores que vão se incrementando com forma igual a uma combinacao, exemplo:
tenho a matriz com os seguintes valores…
0-1-2-3-4
0-1-2-3-5
0-1-2-4-5
0-1-3-4-5
0-2-3-4-5
1-2-3-4-5
a qual deve retornar a posicao que ele se encontraria, que seria:
0-1-2-3-4=0
0-1-2-3-5=1
0-1-2-4-5=2
0-1-3-4-5=3
0-2-3-4-5=4
1-2-3-4-5=5
é claro que esse parece simples, mas meu objetivo é para um número bem maior de números. Isso na verdade é dar a posição de uma combinação, pensei em usar algo a partir da formula de combinacao, mas naum consegui.
Em java os Arrays são considerados objetos, então podemos usar atributos como o " length ", que contêm o número de elementos de um array. tente achar um atributo para isso ou criar um laço que incremente seu contador a cada linha criada…
A
albertoiuPJ
é exatamente para evitar criar um array enorme que pensei em criar uma equacao que possa definir a posicao de uma dada combinacao, seria mais ou menos assim:
combinacao = FATORIAL(totalnumeros)/(FATORIAL(totalnumeros-qtde)*FATORIAL(qtde);
// essa acima eh a formula da combinacao
//agora, digamos q seria para o exemplo q dei acima
//e eu quero encontrar a posicao da combinacao 0-1-3-4-5, entaum
posicao=FUNCAOqueDEFINEposicao(0,1,3,4,5);
posicaodacombinacao[posicao]=1;
M
morocosPJ
Bem, eu tive essa ideia na hora, teste ai. Eu estou considerando que sua lista tenha um tamanho fixo, como apresentado aqui.
vc cria um laço que vai percorrendo a sequencia. tp:
Para i = 0 até 5
se o 1º elemento = i blz continua
senao vc pega o numero correspondente a i na sequencia
vamos supor a sequencia: 0, 1, 3, 4, 5.
Ex: o cursor i vai parar em 2. como 3 é diferente de 2, a posicao será 3
Eu nao testei isso, mas talvez te ajude. Flws
A
albertoiuPJ
sim,
criar laço é a maneira mais fácil, mas o problema é que quero fazer isso muitas vezes, tornando o programa deveras lento, só pra ter uma ideia o tamanho é de um array 15, com 11 elementos em cada um variando de 0 a 25, por isso preciso de uma equacao ou funcao pronta