Duvida Math.random

6 respostas
faicoxim
public class testandoo
{
	void palpit()
	{
		for (int palpite = 0; palpite < 3; palpite++)
		{
		
		palpite = (int)(Math.random() * 3);
		System.out.println(palpite);
	
		}
	}
}
class testandooteste
{
	public static void main (String args[])
	{
		testandoo teste = new testandoo();
		teste.palpit();
	}
}

Pessoal me ajudem aí, quero que o programinha gere 3 codigo aleatoriamente, e esse codigo aí em cima, gera uns trem tudo doido, como eu arrumo isso?

6 Respostas

douglas_vidotto

O problema é que você está usando a variável que está dentro do for para receber os números aleatórios. Dentro do for coloque uma outra variável para fazer o loop e outra para receber o palpite.

Espero ter podido ajudar.

marcosharbs

tente substituir sua função palpit() por esta:

void palpit()   
	    {   
	        
		 for(int i=0; i<3; i++){
	           
	        int palpite = (int)(Math.random() * Integer.MAX_VALUE);   
	        System.out.println(palpite);   
		 }
	       
	      
	    }

pelo que entendi é isso que vc quer, nesse codigo ele vai gera 3 numeros aleatorios entre os possiveis com um int.

Tiago_Farias

Douglas,

vc pode fazer o seguinte:

for (int palpite = 0; palpite < 3; palpite++)  {                 
     int a = (int)(Math.random() * 3);  
     System.out.println(a);  
      
}

Do modo com vc tah fazendo, vc está limitando o numero aleatório a no máximo 2 (naum eh 3 pq vc dah um cast pra int, truncando o resultado).
Outra: não modifica a variável do for q tuh se confunde SEMPRE!

[]s.

gpd38
int inicio, final,valor;

valor = ( int ) ( inicio + ( Math.random()  *  final ) ) ;
F

O Math.random gera números entre 0 e 1, então multiplicando po 3 você não conseguira uma grande variedade de numeros. Não sei se é o que você deseja, mas se você multiplicar por 100 você conseguira números de 0 até 99.

ViniGodoy

Use a classe Random. Não só deixa o seu código mais simples (por evitar essas contas e casts), como também te dá menos chance de cometer erros.

Ao invés de:

palpite = (int)(Math.random() * 3);

Faça:

valor = new Random().nextInt(3);
Criado 20 de novembro de 2008
Ultima resposta 21 de nov. de 2008
Respostas 6
Participantes 7