Números Randômicos

8 respostas
JorjaoCorreia

Eu preciso sortear um número randômico entre 65 e 90, mais não consigo iniciar o sorteio com o valor de 65,
o meu código:

[b]import java.util.Random;
import java.io.PrintStream;

public class Exercicio0512 {

public static void main (String[] args) {

PrintStream ps = System.out;

Random rd = new Random();
ps.print("Número sorteado:\t" + rd.nextInt(90) );
}

}[/b]

se alguém puder me ajudar =)
Obrigado

8 Respostas

kaique
import java.util.Random;

public class Aleatorio {

	public static void main(String[] args) {

		Random random = new Random();

		for (int i = 0; i < 50; i++) {
			System.out.println("Número sortedo: " + (random.nextInt(26) + 65));
		}

	}

}

Se ainda restarem dúvidas, dá o toque…

[]'s.

Marlon_Meneses
Random r = new Random();
		int valor;
		while(true){
			valor = r.nextInt(91);
			if(valor >= 65)
				break;
		}
		
		System.out.println(valor);

vc deve estar se perguntando: "por que nextInt(91)?"
rsrs
esse metodo sorteia um valor de 0 (incluso) ao numero especificado (exclusivo) entao netxInt(90) será de 0 a 90

ViniGodoy
Marlon Meneses:
Random r = new Random();
		int valor;
		while(true){
			valor = r.nextInt(91);
			if(valor >= 65)
				break;
		}
		
		System.out.println(valor);

vc deve estar se perguntando: "por que nextInt(91)?"
rsrs
esse metodo sorteia um valor de 0 (incluso) ao numero especificado (exclusivo) entao netxInt(90) será de 0 a 90

Funciona, mas é extremamente ineficiente. Melhor mesmo é fazer uma funçãozinha, que faz o que o kaique propos:
private static final Random random = new Random();

public int random(int min, int max) {
   int interval = max-min;
   return random.nextInt(interval) + min;
}

Observe o cuidado de criar o Random uma única vez, para garantir que números diferentes sejam criados caso a função seja chamada muitas vezes seguidas, como dentro de um for.

JorjaoCorreia

vlws pela ajuda galera, mais o professor falou pra fazer sem laços de repetições, e que é só um negocinho que vc coloca ali que ele ja faz o sorteio apartir do numero 65, ele disse que era só uma questao de lógica e que só ia falar se ninguem conseguisse mesmo, ele disse que ia deixar pra gnt pensar até descobrir uahieuawhieawuea

;x

JorjaoCorreia

Kaique esse ai nao da mt certo cara ;x
o print fica dentro do for, intao ele imprime várias vezes, se for usando algum laço creio eu que tem que ser o while msm, Brigadao xD

Viigodoy deu certinho cara ;PPP
vlwsss.

Mais será que alguem sabe algum jeito sem usar laços de repetições? quebrei a cabeça aqui e nao consegui ;x

pmlm

Usa o do Kaique, mas tira o for, já vai imprimir só uma vez.

kaique

JorjaoCorreia:
Kaique esse ai nao da mt certo cara ;x
o print fica dentro do for, intao ele imprime várias vezes, se for usando algum laço creio eu que tem que ser o while msm, Brigadao xD

Cara, mas eu coloquei as repetições somente para mostrar a você que o comando executado busca um valor randomicamente entre os limites que você especificou. Se vocie quiser buscar somente uma vez o valor, execute somente uma vez a linha que busca o valor. Por exemplo, no código que te passei, simplesmente retire as linhas 09 e 11 que o processo vai te retornar somente um número entre os limites que você especificou (65 e 90).

[]'s.

JorjaoCorreia

Agora intendi cara UHAUHIAHEUHAU
se fosse uma cobra tinha me mordido :x

Brigadao xD

Criado 22 de abril de 2009
Ultima resposta 23 de abr. de 2009
Respostas 8
Participantes 5