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.
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
M
marcosslashPJ
Matheus,
tem como eu limitar este método random() num intervalo de 0 a 8???
Muito obrigado pela ajuda
Até…
M
matheusPJ
tem sim, é algo do tipo (int) 0 + Math.random() * 8 … não to lembrado agora, alguém ai sabe de cór?
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 +
S
SchuenemannPJ
“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
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.