Switch to full style
Coloque todas as dúvidas que tiver sobre multiplicação de matrizes, soma e subtracção, assim como matriz inversa e determinantes
Responder

[RESOLVIDO] Descobrir a coincidência entre matrizes, baseada no tipo e quantidade de items

26 ago 2013, 19:02

Olá amigos!
Este é meu primeiro mas com certeza não será o ultimo post. Estou com um problema que pode ser fácil para algum dos senhores, mas está me tirando o sono.
Tenho no total 25 matrizes que identificam linhas de premiação em um jogo, como no exemplo (Código Java):
Código:
line01 = {{0, 0, 0, 0, 0}, {1, 1, 1, 1, 1}, {0, 0, 0, 0, 0}};
line02 = {{1, 1, 1, 1, 1}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}};
line03 = {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {1, 1, 1, 1, 1}};
line04 = {{1, 0, 0, 0, 1}, {0, 1, 0, 1, 0}, {0, 0, 1, 0, 0}};
line05 = {{0, 0, 1, 0, 0}, {0, 1, 0, 1, 0}, {1, 0, 0, 0, 1}};
line06 = {{1, 1, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 1, 1}};
line07 = {{0, 0, 0, 1, 1}, {0, 0, 1, 0, 0}, {1, 1, 0, 0, 0}};
line08 = {{0, 0, 0, 0, 0}, {1, 0, 0, 0, 1}, {0, 1, 1, 1, 0}};
line09 = {{0, 1, 1, 1, 0}, {1, 0, 0, 0, 1}, {0, 0, 0, 0, 0}};
line10 = {{0, 1, 0, 0, 0}, {1, 0, 1, 0, 1}, {0, 0, 0, 1, 0}};
line11 = {{0, 0, 0, 1, 0}, {1, 0, 1, 0, 1}, {0, 1, 0, 0, 0}};
line12 = {{0, 0, 1, 1, 1}, {0, 1, 0, 0, 0}, {1, 0, 0, 0, 0}};
line13 = {{0, 0, 0, 0, 0}, {1, 1, 0, 0, 0}, {0, 0, 1, 1, 1}};
line14 = {{1, 1, 1, 0, 0}, {0, 0, 0, 1, 0}, {0, 0, 0, 0, 1}};
line15 = {{0, 0, 0, 0, 1}, {0, 0, 0, 1, 0}, {1, 1, 1, 0, 0}};
line16 = {{1, 1, 1, 1, 0}, {0, 0, 0, 0, 1}, {0, 0, 0, 0, 0}};
line17 = {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 1}, {1, 1, 1, 1, 0}};
line18 = {{0, 1, 1, 1, 1}, {1, 0, 0, 0, 0}, {0, 0, 0, 0, 0}};
line19 = {{0, 0, 0, 0, 0}, {1, 0, 0, 0, 0}, {0, 1, 1, 1, 1}};
line20 = {{0, 0, 0, 0, 1}, {0, 1, 1, 1, 0}, {1, 0, 0, 0, 0}};
line21 = {{1, 0, 0, 0, 0}, {1, 0, 0, 0, 0}, {1, 0, 0, 0, 0}};
line22 = {{0, 1, 0, 0, 0}, {0, 1, 0, 0, 0}, {0, 1, 0, 0, 0}};
line23 = {{0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}};
line24 = {{0, 0, 0, 1, 0}, {0, 0, 0, 1, 0}, {0, 0, 0, 1, 0}};
line25 = {{0, 0, 0, 0, 1}, {0, 0, 0, 0, 1}, {0, 0, 0, 0, 1}};
Eu preciso encontrar, Passando as seguintes informações, quais são as matrizes que coincidirão, ou seja, que haverá interseção entre elas.
Posição: Esquerda, Centro, Direita
Quantidade: 3, 4, 5

Por exemplo: Dizendo que foi passado como parâmetro Posição = Centro e Quantidade = 3, quais matrizes coincidirão nesta informação?
Resultado:
line03, line08, line17, line19

Obrigado a qualquer um que puder me ajudar!
Editado pela última vez por joaodotneto em 29 ago 2013, 17:26, num total de 1 vez.

Re: Descobrir a coincidência entre matrizes, baseada no tipo e quantidade de items

28 ago 2013, 21:04

Por favor, ajude-me a entender o seu problema

O que quer dizer com "haverá interseção entre elas"?

Por que é que a linha8 é posição centro com quantidade 3?

Re: Descobrir a coincidência entre matrizes, baseada no tipo e quantidade de items

28 ago 2013, 22:01

Certo, vamos lá.
Eu quero, por exemplo, todas as matrizes que coincidirem 3 posições ao centro da matriz, sendo que todas possuem 5 colunas. Sendo assim, vamos olhar para as matrizes abaixo:
Exemplo A
Se juntarmos todas elas em uma única matriz, elas ficarão assim:
Exemplo B
Ao fazer isso, é possível ver que elas coincidem ao centro e com 3 posições, como abaixo:
Exemplo C

É isso.

Re: Descobrir a coincidência entre matrizes, baseada no tipo e quantidade de items

29 ago 2013, 07:14

Já percebi, vc quer sobrepor as matrizes
Use a operação lógica OR
https://pt.wikipedia.org/wiki/Disjun%C3 ... %C3%B3gica

Outra forma poderá ser apenas definir uma função f(n1,n2) em java do tipo
(pseudo-código)

Código:
res=f(a,b){
var temp=a+b;
if (temp>1) temp=1;
return temp;
}


Agora sobreponha as matrizes, usando esta função para cada elemento das matrizes

Re: Descobrir a coincidência entre matrizes, baseada no tipo e quantidade de items

29 ago 2013, 13:06

Desculpe mas você não entendeu, eu não quero juntar os valores das matrizes, eu quero descobrir quais matrizes coincidem a quantidade de colunas e a posição, como no exemplo que passei.

Re: Descobrir a coincidência entre matrizes, baseada no tipo e quantidade de items

29 ago 2013, 15:30

Isso é um processo mais numérico e de algoritmo do que matemático.

mas se utiliza java deve ser fácil.

Tem que varrer todos as colunas e vê em cada coluna se todos os elementos são todas iguais

Caso sejam duas matrizes pode simplesmente fazer a diferença, se forem iguais a coluna resultado dá toda zeros

Pode usar també o operador XOR
http://en.wikipedia.org/wiki/Exclusive_or

Caso sejam todos iguais o resultado dá zero, assim sabe exatamente quais colunas são coincidentes.

Mas lembre-se que isto é um fórum de matemática e não de computação

Re: Descobrir a coincidência entre matrizes, baseada no tipo e quantidade de items

29 ago 2013, 17:26

Obrigado meu prezado pela resposta. Você me deu uma luz de como fazer o algoritmo de comparação.
Procurei este fórum exatamente por se tratar mais de cálculos do que de lógica de progamação.
Responder