Uma instância da classe java.util.Random pode ser usada para gerar números aleatórios em Java.
Um número inteiro aleatório pode ser gerado com o método nextInt().
Isto irá gerar um valor no intervalo de Integer.MIN_VALUE a Integer.MAX_VALUE.
Random random = new Random();
random.nextInt();
// => -1169335537
Para limitar o intervalo dos valores gerados, usa nextInt(int).
Isto irá gerar um valor no intervalo de 0 (incluído) até ao limite superior indicado (excluído).
Por exemplo, isto irá gerar um número aleatório de 0 a 9.
Random random = new Random();
random.nextInt(10);
// => 6
E isto irá gerar um número aleatório de 10 a 19.
Random random = new Random();
10 + random.nextInt(10);
// => 11
Um double aleatório pode ser gerado com o método nextDouble().
Isto irá gerar um valor no intervalo de 0.0 a 1.0.
Random random = new Random();
random.nextDouble();
// => 0.19250004204021398
E isto irá gerar um número aleatório de 100.0 a 200.0.
Random random = new Random();
100.0 + 100.0 * random.nextDouble();
// => 111.31849856260328
A Mary é uma grande fã da série de televisão Star Trek: The Next Generation. Joga muitas vezes jogos de interpretação de papéis com papel e caneta, nos quais ela e os amigos fingem ser a tripulação da Starship Enterprise. A personagem da Mary é o Capitão Picard, o que significa que tem de manter o diário de bordo do capitão. Adora a parte criativa do jogo, mas não gosta de inventar dados aleatórios na hora.
Ajuda a Mary a criar geradores aleatórios para dados que aparecem habitualmente no diário de bordo do capitão.
A implementação inicial deste exercício recebe uma instância de java.util.Random como argumento do construtor.
Isto permite que os testes do exercício passem uma instância com uma semente predefinida, o que torna os resultados dos testes previsíveis.
Por isso, espera-se que uses a instância de java.util.Random fornecida na tua implementação.
A Starship Enterprise encontra muitos planetas nas suas viagens.
No universo de Star Trek, os planetas dividem-se em categorias com base nas suas propriedades.
Por exemplo, a Terra é um planeta de classe M.
Todas as classes planetárias possíveis são: D, H, J, K, L, M, N, R, T e Y.
Implementa o método randomPlanetClass().
Deve devolver uma das classes planetárias, de forma aleatória.
captainsLog.randomPlanetClass();
// => "K"
A Enterprise (número de registo NCC-1701) não é a única nave estelar a voar por aí!
Quando se encontra com outra nave estelar, a Mary precisa de registar o número de registo dessa nave.
Os números de registo começam com o prefixo "NCC-" e depois usam um número de 1000 a 9999 (inclusive).
Implementa o método randomShipRegistryNumber() que devolve um número de registo de nave estelar aleatório.
captainsLog.randomShipRegistryNumber();
// => "NCC-1947"
De que serve um diário de bordo se não inclui datas?
Uma data estelar é um número de vírgula flutuante.
As aventuras da Starship Enterprise na primeira temporada de The Next Generation decorrem entre as datas estelares 41000.0 e 42000.0.
O "4" representa o século XXIV e o "1" representa a primeira temporada.
Implementa o método randomStardate() que devolve um número de vírgula flutuante entre 41000.0 (inclusive) e 42000.0 (exclusive).
captainsLog.randomStardate();
// => 41458.15721310934
Inscreve-te no Exercism para aprenderes e dominares Java com 26 conceitos158 exercícios, e mentoria humana real, tudo grátis.