Pergunta

Vou completar meu aprendizado como codificador e obtive um bom projeto J2ME para trabalhar, mas tenho que admitir que não sou tão bom com algoritmos matemáticos como gostaria de ser.

Meu problema é criar todos os "pares de dominó" possíveis a partir de um determinado conjunto de valores. Por exemplo: os valores possíveis passam de 0 a 6. Agora imagine alguns tokens dominó com esses valores. A saída deve então ser algo assim:

00
01
02
03
04
05
06
11
12
13
...

Cada par aparece apenas uma única vez, mas pares com dois valores iguais são possíveis.

Já procurei por esse problema, mas não encontrei uma solução para esse problema em particular ou não entendi realmente como os algoritmos funcionam.

Eu realmente apreciaria quaisquer explicações e algoritmos. Sinta -se à vontade para postar soluções alternativas também. Eu preferiria não apenas ter uma solução, mas também entender;)

Foi útil?

Solução

Pseudo-código:

for i from 0 to n inclusive
   for j from i to n inclusive
       output i,j

O ponto importante é que o segundo loop não começa de zero. Isso significa que não precisamos testar se um dominó já foi usado. Sabemos que todos os dominos produzidos usando esse algoritmo são únicos devido à maneira como o algoritmo é construído.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top