Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sentient 6

Matrizes com dupla não-repetição

Recommended Posts

Eu bolei um título maluco, mas não é nada muito incompreensível.

Trata-se do seguinte: Preciso de duas matrizes, ambas com Z índices, atendendo às seguintes premissas:

- Z é um valor variável.

- Os valores atribuídos aos índices são randômicos.

- Os Z valores das matrizes não podem repetir-se entre si.

- Os índices coincidentes das duas matrizes devem ser diferentes.

 

Ou seja, imaginesmos que Z = 5:

 

NÃO pode acontecer isso:

matriz A (1,5,3,2,4)

matriz B (5,3,4,2,1)

 

Nem isso:

matriz A (1,5,2,2,4)

matriz B (5,3,4,1,2)

 

Muito menos isso:

matriz A (1,5,2,2,4)

matriz B (5,3,4,2,1)

 

Ou seja, nenhum valor pode repetir em nenhum sentido. Assim:

 

matriz A (1,5,3,2,4)

matriz B (5,3,4,1,2)

 

Tentei fazer isso em Action Script 2, JavaScript, Visual basic 6 e PHP, mas minha lógica de verificação não está funcionando.

Para a primeira matriz, randomizei os valores com um contador de 0 a Z. Ele randomizava o índice da matriz que receberia o valor do contador. Assim randomizei Z números sem repetição na matriz A.

Mas quero evitar ter que eliminar as matrizes no caso de existir uma repetição entre elas. ou seja, se algum número coincide com o correspondente de mesmo índice, basta ele ser deslocado para outro índice.

Usei FOR e DO WHILE combinados. Funcionou no Flash 8 com AS2, mas quando houveram repetições, travava o computador! xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem n maneiras de fazer esse algoritmo.

 

Voce pode guardar os números que forem sorteados num vetor e sempre que ler comparar o número sorteado com esse vetor.

Voce pode optar por comparar com a própria matriz.

 

Eu faria:

 

- Inserir todos os elementos da matriz A.

- Inserir todos os elementos da matriz B, comparando também com o índice correspondente em A.

 

Se voce puder poste algum código aqui. De preferencia em: Java, C, C++ ou PHP.

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.