Math.random

13 respostas
Thiago_Java08

Por favor gostaria de saber se existe uma maneira de pré determina o valor do Math.random???
Ex: Math.random entre 0.10 e 0.15.

13 Respostas

Marky.Vasconcelos

Use a classe random que é melhor que o Math.random

PS: Os valores 0.10 à 0.15 pode ser um valor de 1 a 5 somado a 10 dividido por 100

Random rdm = new Random();
int proximoNumero = rdm.nextInt(5);//Limitamos o resultado até 5
double numero = (proximoNumero + 10)/100;
System.out.println(numero);
dreamspeaker

POG brabo

Random r = new Random(System.currentTimeMillis()); System.out.println(new DecimalFormat("0.00").format(r.nextInt(6)/100d + 0.10d));
O nextInt(int) tem que ser até 6 porque é exclusivo (0 até 5)

:twisted:

ViniGodoy

Siga a dica do Mark. Só cuidado com as contas envolvendo inteiros. O ideal é fazer assim:

Random rdm = new Random(); //Troque a variável para double double proximoNumero = rdm.nextInt(5);//Limitamos o resultado até 5 //Senão essa linha sempre retornará 0, já que fará divisão de inteiros. double numero = (proximoNumero + 10)/100; System.out.println(numero);

U

viugii…
E oq q houve com o velho

int x = (int) (Math.random() * 10)

??

ViniGodoy

uchoaaa:
viugii…
E oq q houve com o velho

Ele gera péssimos resultados. Especialmente no número extremo, como o 10.
É o que acontece quando vc trunca (a única chance de dar 10 é o random dar 1. Se der 0,9 0,8, 0,7, 0.71, 0.72, o resultado é 9, meio injusto com o 10, não acha?)

U

ViniGodoy:

Ele gera péssimos resultados. Especialmente no número extremo, como o 10.
É o que acontece quando vc trunca (a única chance de dar 10 é o random dar 1. Se der 0,9 0,8, 0,7, 0.71, 0.72, o resultado é 9, meio injusto com o 10, não acha?)

hmmm, faz sentido… :wink:
E fora o Casting evitado, né?!

dreamspeaker

Tá bom, tá bom, é mais elegante, coitado do meu POG! :cry:

Mas o nextInt(number) tem que ser com 6 pra pegar o 5! :slight_smile:

Thiago_Java08

Mas meu professor quer que eu use o bendito Math.random

Eu fiz de uma maneira só que ele nem sempre gera numeros entre 10 e 15 que foi o valor estimado!!!
public class Bovinos {

    public static void main (String [] args) {
    	int [] vetor = new int [20];
    	
    	for (int i=0; i<vetor.length; i++)
    		vetor[i] = (int)(Math.random()*300/15);
    		
       	for (int aux: vetor)
       		
    		System.out.println(aux);
    	
    }
    
    
}
rafaelzulin
public class Bovino {
       public static void main (String [] args) {  
       int [] vetor = new int [20];  
         
        for (int i=0; i<vetor.length; i++)  
             vetor[i] = (int)(Math.random()*10 %6 + 10);  
               
         for (int aux: vetor)  
               
             System.out.println(aux);  
           
     }     
}

Faz isso que o random entre 10-15 funciona direito.

ViniGodoy

Aproveita e pede para ele ler o item 30, do capítulo 7 do Effective Java, chamado “Know and use the libraries”.
Entre os exemplos, está especificamente o random.

Thiago_Java08

Muito obrigado pela ajuda de todos!!!
E aproveitando gostaria de saber se alguêm sabe o porquê na minha casa os programas compilam e rodam normalmente (Tenho o JSE 1.6 e o Jcreator) e aqui no serviço compilo pelo http://www.innovation.ch/java/java_compile.html e tenho instalado o JRE porém o erro está na hora de compilar???

S

Não está esquecendo de escolher a versão do JDK?

eros.stein

Aproveita e pede para ele ler o item 30, do capítulo 7 do Effective Java, chamado “Know and use the libraries”.
Entre os exemplos, está especificamente o random.

Massa Vini!! :lol: :lol:

Quanto tempo hein, nem te vejo no MSN mais… vida puxada :lol:

abraço;

Criado 2 de abril de 2008
Ultima resposta 4 de abr. de 2008
Respostas 13
Participantes 8