[RESOLVIDO] dúvida Math.random

Galera,

Quero criar um grupo de números aleatórios que vão de 1 à 99, utilizando o Math.random, até ai está tranquilo, a questão é que preciso gerar um grupo com 6 números seguidos, por exemplo:

15 24 77 41 60 11

Alguem pode me dar uma ideia ?

não queria fazer 6 Math.rondon toda vez que chamar o metodo, acredito que tenha uma forma mais facil…

Vlw

Qual o problema de chamar random 6 vezes? Você pode encapsular isso em um método

Não teria uma forma mais pratica ?

no caso eu teria que fazer assim ?


int valor1= (int) (Math.random()*99);
int valor2= (int) (Math.random()*99);
int valor3= (int) (Math.random()*99);
int valor4= (int) (Math.random()*99);
int valor5= (int) (Math.random()*99);
int valor6= (int) (Math.random()*99);

Pode encapsular em um método, como eu disse:public int meuRandom(){ return (int) (Math.random() * 99); } E aí usa eleint valor 1 = meuRandom(); int valor 2 = meuRandom(); int valor 3 = meuRandom(); int valor 4 = meuRandom(); int valor 5 = meuRandom(); int valor 6 = meuRandom();

vc sempre vai chamar o Math.random() 6 vezes?

se for…faça um for aih e vah adicionando num array…se já existe o número no array, manda ele buscar outro, dpois retorna os elementos desse array…pronto…

  1. Paulo, para gerar um número de 1 até 99, você tem de multiplicar o Math.random() por 99 (como você fez) mas tem de somar um, certo?
  2. Para gerar números inteiros aleatórios, o melhor é usar a classe java.util.Random, que já tem um método nextInt.

entanglement ,

Você tem um exemplo ?

Vlw :smiley:

[quote=paulohms]entanglement ,

Você tem um exemplo ?

Vlw :D[/quote]
Ele te passou o nome da classe e o nome do método, ué. O que mais seria necessário?

Concordo ali com o Rodrigo…

Procure na documentação do java aih kra

Opa,

Calma ae galera, não precisa apelar não, apenas pedi um exemplo, mais sem problemas, eu vou ler a documentação.

Obg a todos.

Só mais uma dica. 100% dos preguiçosos que odeiam criar variáveis fazem isto aqui:

int[] megasena = new int[6];
for (int i = 0; i < 6; ++i) {
     megasena[i] = new Random().nextInt (99) + 1;
}

O problema é que new Random() cria um gerador de números aleatórios inicializado com o instante corrente, em milissegundos. Acontece que o loop roda tão rápido que ele vai gerar 6 objetos, provavelmente inicializados todos no mesmo milissegundo, e o que vai acontecer é que você vai ter 6 valores iguais, o que obviamente não é o que você quer. No seu caso, você provavelmente quer que todos os números sejam diferentes entre si, certo? Não vou escrever o código que garante que todos sejam diferentes. Vou só dar o exemplo correto para usar java.util.Random.

Random r = new Random();
int[] megasena = new int[6];
for (int i = 0; i < 6; ++i) {
     megasena[i] = r.nextInt (99) + 1;
}

[quote=entanglement] Random r = new Random(); int[] megasena = new int[6]; for (int i = 0; i < 6; ++i) { megasena[i] = r.nextInt (99) + 1; } [/quote]
Megasena? 8)

Acho que o entanglement encontrou o segredo por trás do algoritmo :slight_smile:

Vlw galera qndo chegar em casa vou testar…

Os testes são em de uma aplicação para mega sena msm, rsrssr :smiley:

não há segregos ai…

vlw :smiley:

A Mega-Sena vai de 01 a 60, ou seja:

r.nextInt (60) + 1