Dae galera tudoblz? pessoal é o seguinte estou precisando fazer um random que gere aletoriamente dez numeros entre 0 a 15 como eu faço isso alguem me ajuda?
int[] random = new int[10];
for(int i = 0; i < 10; i++) {
random[i] = (int) (Math.random() * 15);
}
o metodo Math.random() retorna um double, com valores de 0 a 1, dessa forma, basta multiplicar pelo inteiro que voce quer e dar o casting para que ele gere o numero.
nesse exemplo, o resultado ficara no array random, e podera ter numeros repetidos.
se voce nao quiser numeros repetidos faca:
int[] random = new int[10];
boolean[] jahSaiu = new boolean[16];
for(int i = 0; i < 10; i++) {
random[i] = (int) (Math.random() * 15);
while(jahSaiu[random[i]]) {
random[i] = (int) (Math.random() * 15);
}
jahSaiu[random[i]] = true;
}
so lembrando, ambos os codigos podem gerar numeros de 0 a 15.
ex: [6, 12, 4, 0, 2, 9, 7, 5, 15, 8]
espero ter ajudado
acredito que para gerar numero de 0 a 15 é preciso multiplicar por 16.
... = (int) (Math.random() * 16);
alguem poderia me explicar o q acontece no while em diante naum entendi muito bem
por favor
valeuuuuuuuuuuuuuu
[quote=“denis_arruda”]acredito que para gerar numero de 0 a 15 é preciso multiplicar por 16.
... = (int) (Math.random() * 16);
voce tem razao, eu me confundi :oops:
o metodo random gera numeros maiores ou iguais a zero e menores que 1, dessa forma, tem que se multiplicar por 16 mesmo…acabei de conferir na API…
int[] random = new int[10];
boolean[] jahSaiu = new boolean[16];
for(int i = 0; i < 10; i++) {
random[i] = (int) (Math.random() * 16); //LINHA1
while(jahSaiu[random[i]]) { //LINHA2
random[i] = (int) (Math.random() * 16); //LINHA3
}
jahSaiu[random[i]] = true; //LINHA4
}
e o while é o seguinte: se nao tiver saido o numero que foi sorteado na LINHA1 a execucao do programa nao vai entrar no loop (LINHA2).
caso contrario, o loop vai fazer um novo numero ser sorteado(LINHA3) ate que seja encontrado um numero que nao foi sorteado ainda. o indice pra esse novo numero vai estar marcado no array depossiveis sorteados depois da LINHA4.
espero ter sido mais claro, e foi mal pelo vacilo com o random…
so me explica mais uma coisa
nesse trecho :
… jahSaiu[random[i]] …
vc esta passando o conteudo da posicao random[i] como indice para o array jahSaiu[] ??? ou estaria atribuindo o valor de random[i] para uma posicao de jahSaiu[]???
sou um neeeeeeeeeooooobaaaaaaaa
em todo trecho que tem
jahSaiu[random[i]] eh porque eu to passando o numero que acabou de sair no “sorteio” para ver se já saiu aquele número. por exemplo:
random[<atual>] = 5;//o numero mais recentemente sorteado
jahSaiu[random[<atual>]]?//jah saiu o numero que acabou de ser sorteado?
a partir disso se faz todo o resto.
so respondendo sua pergunta mais diretamente, eu estou passando o conteudo da posicao random[<atual>] como indice para o array jahSaiu[].
espero ter sido mais claro.
agora sim
eu entendi tudo
valeu a passiencia