Classe Random

9 respostas
T

Olá pessoal, sou novo em programação, gostaria de uma ajuda em um exercício que não conseguir fazer por ser iniciante ainda, segue abaixo.

Modifique a classe Lampada criada anteriormente para incluir o caso de uma lâmpada queimar ao ser
ligada. Sabe-se que existe uma chance de 15% da lâmpada queimar ao ser ligada. Dica: utilize o gerador de
números aleatórios de Java, classe Random, para sortear a chance de uma lâmpada queimar.

Agradeceria se alguém pudesse ajudar.

Abraço

9 Respostas

francislon

Pensa assim:
Se você gerar um valor aleatorio entre 1 e 100. Você concorda comigo que as chances deste numero estar no intervalo de 1 a 15 é de 15%?
Logo, quando vc ligar a lampada, vc gera um numero aleatorio e se este valor estiver entre 1 e 15, a lampada está queimada.
Acho que essa matematica ta certa :stuck_out_tongue:
QQ coisa me corrijam aew :slight_smile:

julianofischer

Lembrando que a classe Random começa do 0.
ou seja… r.nextInt(100) gera números de 0 a 99!!!
:smiley:

francislon

julianofischer escreveu:
Lembrando que a classe Random começa do 0.
ou seja… r.nextInt(100) gera números de 0 a 99!!!

Não necessariamente. Se você fizer o trecho de codigo abaixo ele gera numeros de 1 a 100;

Random r = new Random(); int num = 1 + r.nextInt(100);

Tem esse artigo do Paulo Silveira aqui no fórum sobre a classe Random:
http://www.guj.com.br/java.tutorial.artigo.17.1.guj

R

francislon:
julianofischer escreveu:
Lembrando que a classe Random começa do 0.
ou seja… r.nextInt(100) gera números de 0 a 99!!!

Não necessariamente. Se você fizer o trecho de codigo abaixo ele gera numeros de 1 a 100;

Random r = new Random(); int num = 1 + r.nextInt(100);

Tem esse artigo do Paulo Silveira aqui no fórum sobre a classe Random:
http://www.guj.com.br/java.tutorial.artigo.17.1.guj

no artigo… view plainprint?
int i = random.nextInt(10);

Isto vai gerar um número entre 0 e 9. Nunca vai sair o número 10.

Estou observando isto, pois quero fazer uma escolha de diversos números inclusive de 0 e 1, usando o random, tenho que por 2, mas pensei, uma hora pode sair este dois, ou ele nunca vai sair mesmo?

Pode ser uma probabilidade bem pequena, mas pode acontecer, não???

fiz algo:

Random gerador = new Random();       
        //horizontal ou vertical, 0 ou 1... 1=2 também...
        int HorizontalVertical = gerador.nextInt(2);  //apesar de 0 a 1, o 2 dá uma margem maior para cair o número 1.
        System.out.println("b=  (até 1) " + HorizontalVertical);

como fiz um else, caso não de zero é vertical, funcionará, mas penso que se tivesse um switch com se 0= horizontal se 1= vertical, em algum momento poderia sair o 2, e dar um bug, ou será que não? Numa rara possibilidade , mas quem sabe ???

Penso que o 2, está incluso, aparentemente, ou com certeza não mesmo. ??

Ficou a dúvida… Divido com os colegas ressucitando este post inclusive. :x

:?

francislon

Cara,

Na documentação do método nextInt da classe Random tem a seguinte informação:

Traduzindo. Se vc tem o código:

int HorizontalVertical = gerador.nextInt(2);

Isto representa um número randômico no intervalo [0, 2[. Ou seja, os números gerados fazem parte do conjunto: {x ∈ Z | 0 <= x < 2}

Entendeu?

R

é between é entre, e intervalo realmente (depende o tipo talvez) não conte o próprio número. Ali no seu exemplo por exemplo, sendo menor que 2, não entra com certeza, pois não tem o igual a 2. Mas como lá no ingles que vc postou mostra o 0 inclusive e o ‘specified value’ exclusive, significa então que o ‘specified value’ de fato não deve participar do sorteio de forma nenhuma, o que já seria uma probabilidade talvez aparentemente remota.

De qualquer forma fico grato pela resposta.

Utilizo esta situação, em uma batalha naval que construo, procuro postar aqui, quando pronto… Tenho meu tcc com 7 jogos, se vc quiser conhecer, envie um email para mim que está na assinatura da minha conta.

R

ta saindo meu projeto, vc pode perceber o aleatório ao reiniciar o projeto novamente, ele sempre escolhe uma nova posição para o porta-avioes… ali é o desenho da bomba, que vai ser futuramente usado, já que o navio vai ficar invisivel de fato, pois é uma batalha naval para um jogador, contra o computador, que escolhe a posição dos navios, sacou??

francislon

Muito bacana cara. Parabéns e boa sorte ai no seu tcc.

R

ei o tcc ta pronto, se quiser conhecer, o email é [email removido] subject tcc guj, aí eu te envio, pois é muito grande, não cabe no anexo…

Isto aí é um ‘desafio’ e serve para complementar, meu feitio, ou ‘estudo’ de jogos.

Inclusive quero ver se ponho na net… vc sabe como faz o jar funcionar bem direto na net… sei que tem um jeito… é com o ‘launch.jnlp’, algo assim, mas sempre tem dado problema…

Umas vezes transformei em applet, mas também, depois o arquivo, some , corrompe, estraga, mesmo os jar que eu ponho para download, também estragam…

tenho um site que tem um programa de matematica, o tcc estragou lá, e a hospedagem gratuita também retirou… www.raghy.net23.net outras coisas em php também…

Criado 10 de março de 2008
Ultima resposta 26 de mar. de 2013
Respostas 9
Participantes 4