Preenchimento de matriz

Olá pessoal,

estou com um problema:

Estou precisando preencher uma matriz [3][3] com numeros aléatórios de 0 a 8 mas esse números não podem se repetir.

Explicando melhor:

Depois de realizada a geração de números aleatórios a matriz deve ficar com os números (0,1,2,3,4,5,6,7,8) distribuidos nas nove posições da matriz de maneira aleatória.

Alguem pode me ajudar???

Obrigado

seguinte, vc vai usar o método random() da classe Math pra isso… execute o método, teste o valor, e salve em um vetor por ex… e coloque ele na primeira posição da matriz, depois, chame random() de novo, e se o valor q ele retornar ja tiver na sua matriz, tu chama de noooovo random()… e faça sempre esse if pra verificar se o numero ja nao existe na sua matriz… ou seja, varrendo esse vetor auxiliar

Matheus,

tem como eu limitar este método random() num intervalo de 0 a 8???

Muito obrigado pela ajuda

Até…

tem sim, é algo do tipo (int) 0 + Math.random() * 8 … não to lembrado agora, alguém ai sabe de cór?

int numero=(int)(Math.random()*4);

(int)(Math.random() * 9))

Math.random() retorna um número no intervalo [0,1) (fechado em 0, aberto em 1).

Mas alguém poderia me explicar como funciona por que exemplo aproveitando o código do colega

(int) (Math.random()*9)

O que irá acontecer quando esse comando for executado?

Para que serve este *9???

Mais uma vez obrigado

Ola…

Na verdade eu faria o seu codigo assim:

seuarray[i][j] = (int)( Math.random() * 8 );

O metodo random gera numeros de 0.0 ate 0.9, entao fazemos um cast pra converter esses numeros em inteiros, certo?

Entao o * 8, mostra o intervalo dos numeros, no nosso caso o codigo

)( Math.random() * 8 ) gera numeros aleatorios entre 0.0 e 0.8, e com o uso do (int), faz o cast, fazendo assim gerar numeros aleatorios entre 0 e 8!

BLZ ?? :razz:
Espero ter ajudado!! Abracao e te +

[quote=“marcosslash”]Mas alguém poderia me explicar como funciona por que exemplo aproveitando o código do colega

(int) (Math.random()*9)

O que irá acontecer quando esse comando for executado?

Para que serve este *9???

Mais uma vez obrigado[/quote]

Math.random() gera um double no intervalo [0,1).
O número vai ser multiplicado por 9 e truncado. O resultado será um número de 0 a 8.

OBS: *8 não presta, pois não gera o 8.