Matriz identidade

8 respostas
Rooney

Como posso fazer para criar uma matriz de ordem [color=red]nxn[/color] onde só aparecerá 1 na diagonal principal e 0 nos restante da matriz? [color=blue](Tipo criar 2 for eu sei o problema é dentro, como q vai funcionar dentro do for).[/color]

vlw.

:smiley:

8 Respostas

E

Quais são os elementos da matriz que recebem o valor 1? (Dica: só é preciso fazer 1 único “for” para preenchê-los.)

M

Rooney:
Como posso fazer para criar uma matriz de ordem [color=red]nxn[/color] onde só aparecerá 1 na diagonal principal e 0 nos restante da matriz? [color=blue](Tipo criar 2 for eu sei o problema é dentro, como q vai funcionar dentro do for).[/color]

vlw.

:smiley:


Você já disse tudo. Dentro de um for verifique o seguinte:

  1. O elemento atual pertence à diagonal principal?
    1.a. Sim. Adiciono 1 na posição.
    1.b. Não. Adiciono 0 na posição.

Isso resolve seu problema. Agora como determinar se está na diagonal principal? Aí é com você (é simples).

pmlm

marcobiscaro2112:

Você já disse tudo. Dentro de um for verifique o seguinte:

  1. O elemento atual pertence à diagonal principal?
    1.a. Sim. Adiciono 1 na posição.
    1.b. Não. Adiciono 0 na posição.

Isso resolve seu problema. Agora como determinar se está na diagonal principal? Aí é com você (é simples).

Nem precisa verificar nada. Com um só for sabe que está a apanhar todos os elementos da diagonal principal, e é só colocar a 1.

M

pmlm:
marcobiscaro2112:

Você já disse tudo. Dentro de um for verifique o seguinte:

  1. O elemento atual pertence à diagonal principal?
    1.a. Sim. Adiciono 1 na posição.
    1.b. Não. Adiciono 0 na posição.

Isso resolve seu problema. Agora como determinar se está na diagonal principal? Aí é com você (é simples).

Nem precisa verificar nada. Com um só for sabe que está a apanhar todos os elementos da diagonal principal, e é só colocar a 1.


Verdade. Como, por padrão, os outros elementos são 0 fica mais fácil ainda!

Obrigado, havia esquecido.

M

Tentando de novo, mais simples ainda dessa vez:

O que indica que um elemento pertence à diagonal principal?

Respondendo isso é possível resolver o problema com um único for.

ViniGodoy

Quando um elemento está na diagonal principal? Quando sua linha é igual sua coluna.

Logo:

int[][] identidade = new int[4][4]; for (int linha = 0; i < identidade.length; linha++) { for (int col = 0; col < identidade[linha].length; col++) { identidade[linha][col] = linha == col ? 1 : 0; } }

C

Ahhhhhh Vini, vc acabou com a diversão =(
A gente tava querendo incentivar o pregu… usuário a descobrir sozinho isso…

peczenyj

na verdade vc precisa apenas fazer isso

int[][] m = new int[4][4]; for(i=0;i<m.length;i++) m[i][i] = 1;

pois os elementos não inicializados desse vetor terão valor 0 (por serem primitivos são inicializados com valor default).

Criado 16 de dezembro de 2009
Ultima resposta 16 de dez. de 2009
Respostas 8
Participantes 7