Ir para conteúdo

POWERED BY:

Arquivado

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

Dinha

Combinar vetores de uma matriz

Recommended Posts

Olá,

 

Eu tenho um sistema que vai trabalhar com matrizes quadradas com 3x3, 4x4, etc.

Esse sistema tem que exibir todas as combinações possíveis entre os vetores dessa matriz sem repetição. Por exemplo:

 

matriz = [[1,2,3],[4,5,6],[7,8,9]]

 

combinacoes =

[[1,4,7],[2,5,8],[3,6,9]]

[[1,5,9],[2,6,7],[3,4,8]]

[[1,6,8],[2,4,9],[3,5,7]]

 

Eu preciso da lógica que gera essas combinações numa matriz de 4x4 [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] ou maior. Não consegui chegar a nenhuma que gera as combinações pra essas matrizes maiores.

Se alguém já tiver ideia de como fazer isso, visto em algum lugar ou de repente puder me sugerir um outro fórum eu agradeço.

 

Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Eu tenho um sistema que vai trabalhar com matrizes quadradas com 3x3, 4x4, etc.

Esse sistema tem que exibir todas as combinações possíveis entre os vetores dessa matriz sem repetição. Por exemplo:

 

matriz = [[1,2,3],[4,5,6],[7,8,9]]

 

combinacoes =

[[1,4,7],[2,5,8],[3,6,9]]

[[1,5,9],[2,6,7],[3,4,8]]

[[1,6,8],[2,4,9],[3,5,7]]

 

Eu preciso da lógica que gera essas combinações numa matriz de 4x4 [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] ou maior. Não consegui chegar a nenhuma que gera as combinações pra essas matrizes maiores.

Se alguém já tiver ideia de como fazer isso, visto em algum lugar ou de repente puder me sugerir um outro fórum eu agradeço.

 

Obrigada.

 

Depois de vários testes de mesa, cheguei à conclusão de que isso só é possível quando a matriz é de um número primo como o 3x3, 5x5, 7x7... no caso de 4x4, os números acabam se repetindo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em programação como q o programa está ficando?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

A geração das combinações de vetores de vetores independe da relação entre o número de linhas e o número de colunas da matriz representada. Você tem um vetor de vetores de elementos atômicos. Cada vetor de elementos atômicos é acessado por um índice do vetor de vetores. O problema é reduzido, então, a permutar os índices do vetor de vetores. Ou seja, você quer, dado { 1, 2, 3, ..., n }, gerar as seqüências ordenadas dos elementos do conjunto. Dado que o conjunto é fornecido como um vetor de vetores, sua primeira saída é trivial: (0 1 2 3 ... n).

 

Há muitos algoritmos que resolvem este problema. O Knuth tem uma seção de sua obra dedicada especialmente a isto. Sugiro que pesquise sobre algoritmos combinatórios.

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.