Numero aleatório

8 respostas
A

Salve Salve Galera … :smiley:

Dessa forma descrita abaixo, eu pego um numero aleatóriamente de 1 a 10,
int value = 1 + (int) ( Math.random() * 10 );

Como que eu faço para pegar um numero aleatório, entre numeros que eu defina, por exemplo.

Quero pegar o numero aleatoriamente entre 1,3,5,6,9,10,11,14

Como fazer ??? alguém sabe ???

VALEWWSSssss :smiley:

8 Respostas

furutani

Olá!

Vc pode definir o intervalo assim:

int vInicio = 0; int vFinal = 10; int value = vInicio + (int) ( Math.random() * vFinal );

A

Dessa maneira apenas deixa flexivel a faixa de numeros sequenciais a ser pesquisados.

O que eu quero, é que pesquise em numeros não sequenciais gerados por mim.

Exemplo,

escolher, aleatóriamente, entre os numeros(2,1,5,6,7,9,11,15,16,17,22)

:D   Obrigadu ...   :D
aborges

Nao li a API, mas uma funcaozinha baba seria:

int value;
List valores = new ArrayList();

valores.add(new Integer("1"));
valores.add(new Integer("3"));
valores.add(new Integer("5"));
valores.add(new Integer("6"));
valores.add(new Integer("9"));
valores.add(new Integer("10"));
valores.add(new Integer("11"));
valores.add(new Integer("14"));


do{
    value = vInicio + (int) ( Math.random() * vFinal );
}while(!valores.contains(new Integer(value));
smota

Pq não pegar seu array com os numeros que você gerou e sortear uma posição dele?

Dá pra usar o código ai de cima, só que não precisa do while já que você vai sortear a posição …

aborges

“smota”:
Pq não pegar seu array com os numeros que você gerou e sortear uma posição dele?

Dá pra usar o código ai de cima, só que não precisa do while já que você vai sortear a posição …

Eh verdade… porem o codigo mudaria de

value = vInicio + (int) ( Math.random() * vFinal );

para

value = vInicio + (int) ( Math.random() * valores.size()-1 ); value = ((Integer)valores.get(value)).intValue()

A

Putz …

Fazendo um método para isso …
Dessa forma fica simples mesmo …
Não tinha pensado nisso …

Mas seilá … Acho que deveria ter um random que faça isso automaticamente.

Obrigado Galera … Deu certim … :smiley:

danieldestro

int[] numeros = { 1, 2, 5, 10, 99, 4354, 3432, 432442 }; int rand = (int) ( Math.random() * numeros.length ); System.out.println( numeros[ rand ] );

A

:smiley: Salve Salve Daniel … furutani … aborges … smota …

:shock:  Valew ....  Deu certim ..   :D
Criado 28 de abril de 2004
Ultima resposta 28 de abr. de 2004
Respostas 8
Participantes 5