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.