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?
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 < 70; i++) {
for (int j = 0; j < 50; j++) {
matriz[i][j] = rnd.nextInt();
}
}
//Imprime os valores da matriz
for (int i = 0; i < 70; i++) {
for (int j = 0; j < 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.
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.