To tentando fazer uma classe que gere um numero aleatorio entre os valores maximo e minimo recebidos do usuario na linha de comando mas não consigo.
Alguem tem idéia de como inicio isso?
Grato;
To tentando fazer uma classe que gere um numero aleatorio entre os valores maximo e minimo recebidos do usuario na linha de comando mas não consigo.
Alguem tem idéia de como inicio isso?
Grato;
Esta utilizando a classe Random da Java API?
Dica: a classe Random (java.util.Random) tem um método chamado nextInt.
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Random.html#nextInt(int)
Com essa classe é fácil fazer uma continha simples.
Use
import java.util.Random;
Essa é uma classe para gerar números randômicos.
Crie um gerador de números aleatórios
Random rand = new Ramdom();
Para gerar um número entre 10 e 30, por exemplo, faça
int n = rand.nextInt(30) + 10;
Falou!
Não vou postar código, mas a idéia é bem simples:
1 - pegue a diferença dos dois números
2 - use o método random da classe lang.Math para gerar um número aleatório entre 0 e 1
3 - múltiplique o resultado de 2 pelo reultado de 1
4 - adicione o primeiro número ao resultado de 3
só isso
Aham - a expressão acima gera números entre 10 e 39 (que não é exatamente o que você quer), já que nextInt (30) gera números entre 0 e 29.
A conta correta eu deixo como exercício.
Funcionou, mas o único problema é que os valores maximo e minimo deverão ser recebidos do usuario na linha de comando. E isso que ta me deixando grilado.
CÓDIGO FONTE
import java.util.Random;
public class Random12 {
public static void main(String[] args) {
Random rand = new Random();
int n = rand.nextInt(60) + 0;
System.out. println("\nO valor eh " + n);
}
}
RESULTADO:
C:\Java\Global\Casa\Codigos Fontes>javac Random12.java
C:\Java\Global\Casa\Codigos Fontes>java Random12
O valor eh 8
C:\Java\Global\Casa\Codigos Fontes>
Bom, você já ouviu falar para que serve o parâmetro “args” do seu método “main” e do método “Integer.parseInt”? É isso que você vai ter de usar.
Putz, agora ferrou tudo… hehehe
Eu sei que é mais ou menos isso…
public class Random12 {
public static void main(String[] args) {
String valor = args[0];
System.out. println("\nO valor eh " + valor);
}
}
Agora eu não sei como fazer para trazer randomicos.
Se eu usar a classe Math seria possível?
Putz, agora ferrou tudo… hehehe
Eu sei que é mais ou menos isso…
public class Random12 {
public static void main(String[] args) {
String valor = args[0];
System.out. println("\nO valor eh " + valor);
}
}
Agora eu não sei como fazer para trazer randomicos.
Se eu usar a classe Math seria possível?
[quote=Fabio Verdi]Funcionou, mas o único problema é que os valores maximo e minimo deverão ser recebidos do usuario na linha de comando. E isso que ta me deixando grilado.
[/quote]
Então…crie um método que receba os valores minimo e máximo e taca no metodo random…e retorna o valor que você vai gerar no mesmo…fica assim mais ou menos
public int gerRandom(int maximo, int minimo)
{
Random rd = new Random();
return rd.nextInt(maximo) + minimo;
}
acho qeu dará certo… :oops:
Aqui há dois problemas
a) Não se deve criar um objeto da classe Random a cada vez que você o usa porque ele vai dar resultados iguais, se os dois objetos forem criados no mesmo milissegundo. Ponha a criação desse objeto fora desse método (como um membro da classe, por exemplo.)
b) a conta certa é
rd.nextInt (maximo - minimo + 1) + minimo
[quote=thingol][quote=akumaldo]
public int gerRandom(int maximo, int minimo)
{
Random rd = new Random();
return rd.nextInt(maximo) + minimo;
}
[/quote]
Aqui há dois problemas
a) Não se deve criar um objeto da classe Random a cada vez que você o usa porque ele vai dar resultados iguais, se os dois objetos forem criados no mesmo milissegundo. Ponha a criação desse objeto fora desse método (como um membro da classe, por exemplo.)
b) a conta certa é
rd.nextInt (maximo - minimo + 1) + minimo
[/quote]
Aaaaahhh obrigado pela correção… :oops: não estava em casa não pude testar e ver como saia…
mas realmente se for criado 2 objetos ao mesmo tempo vai dar esse problema por que eles vão pegar a mesma seed…a opção é deixar fora da classe como você mesmo falou!
Este tópico comprova que mesmo um assunto relativamente simples (geração de números aleatórios) pode render muito…
De modo geral:
galera alguem sabe se tem como por exemplo…eu quero pegar valores aleatorios de 1 a 5, mas eu irei pegar esses 5 valores então nao poderiam repetir…por exemplo eu pegaria o valor 1 dai depois 3,5,4,2
entendeu?
eu quero recuperar os 5 numeros mas aleatorios
alguem sabe me dizer algo?
ixi fiz umas gambi aqui e deu certo hehehe
bom por enquanto vou deixando assim se alguem souber um jeito simples de se fazer por favor compartilhe comigo.
qq hora eu volto para ver se alguem teve uma ideia bacana
valew galera
das 2, 1:
ou vc cria um array de numeros e altera a posição deles no array de forma randomica
ou vc vai gerando os numeros e vai guardando em um array - ao sortear o proximo veja se ja saiu, se ja, sorteie de novo.