Preencher uma matriz?

Alguém teria alguma idéia simples de como preencher uma matriz MxN, por exemplo de 70x50, com valores aleatórios? Ou seja que não seja em ordem.
Já me falaram que posso utilizar apenas laço, que seria um laço um escadinha, alguém sabe alguma maneira?

1 curtida

você pode colocar um laço dentro do outro, por exemplo se quer preencher uma matriz de MxN seria assim:

int m[] = new int [70];
int n[] = new int [50];

for(int i = 0; i < m.length; i++){
for(int j = 0; j < n.length; j++){
System.out.println(" valores de m na posição" + i + m[i] + " e n nas posições " + j + n[j]);
}
}

Por exemplo o for do " i " so ira incrementar quando o for do " j " terminar, dessa forma vai preenchendo pra vc.
Era isso que você queria?

abrç

Isso mesmo, para fazer o preenchimento você pode utilizar o "laço escadinha" (dois for seriam suficientes para solucionar isso).

Agora, quanto aos valores aleatórios, você pode utilizar uma classe chamada Random. Inclusive ela está num daqueles exemplos de QuickSort, um mais complexo que foi enviado lá…

Segue um exemplo simples de como você poderia fazer isso:

import java.util.Random; public class TesteRandom { public static void main(String[] args) { int[][] matriz = new int[70][50]; Random rnd = new Random(); //Alimenta a matriz com valores aleatórios for (int i = 0; i &lt 70; i++) { for (int j = 0; j &lt 50; j++) { matriz[i][j] = rnd.nextInt(); } } //Imprime os valores da matriz for (int i = 0; i &lt 70; i++) { for (int j = 0; j &lt 50; j++) { System.out.println(matriz[i][j]); } } } }
Se você procurar saber mais sobre o Random, dá pra fazer ele gerar aleatoriametne valores menores, usando outros métodos também poderia sempre receber um inteiro positivo.

1 curtida

Isso não é matriz

Isso sim!

podecrer… linhas e colunas…

Bem, pelo que eu entendi seria através do laço escadinha que eu iria preencher de forma aleatório, sem precisar da função Random. Tentei até encontrar algo como “algoritmo escadinha” pelo google, mas não encontrei nada.

E se eu quiser limitar que esse número randonico gerado for entre 1 e 9?

Att,

Pedro Henrique Maia.

Use o Math.Random(), ele retorna um double aleatório entre 0 e 1, usando Math.random()*9 te dá números entre 0 e 9, portanto pra usar um intervalo entre 1 e 9 basta fazer:

double aleatorio = 1 + Math.random()*9;

e depois fazer um cast

int aleatorioInteiro = (int) aleatorio

Então se não puder repetir o nenhum dos números a função não funciona né? Se funciona como eu faço?

Atenciosamente,

Pedro Henrique Maia.