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 usando o método nextInt().
Isso vai 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, use nextInt(int).
Isso vai gerar um valor no intervalo de 0 (inclusive) até o limite superior informado (exclusivo).
Por exemplo, isso vai gerar um número aleatório de 0 a 9.
Random random = new Random();
random.nextInt(10);
// => 6
E isso vai gerar um número aleatório de 10 a 19.
Random random = new Random();
10 + random.nextInt(10);
// => 11
Um número de ponto flutuante aleatório pode ser gerado usando o método nextDouble().
Isso vai gerar um valor no intervalo de 0.0 a 1.0.
Random random = new Random();
random.nextDouble();
// => 0.19250004204021398
E isso vai gerar um número aleatório de 100.0 a 200.0.
Random random = new Random();
100.0 + 100.0 * random.nextDouble();
// => 111.31849856260328
Mary é uma grande fã da série de TV Star Trek: The Next Generation. Ela costuma jogar RPG de mesa, em que ela e seus amigos fingem ser a tripulação da Starship Enterprise. A personagem de Mary é o Capitão Picard, o que significa que ela precisa manter o diário de bordo do capitão. Ela adora a parte criativa do jogo, mas não gosta de gerar dados aleatórios na hora.
Ajude Mary criando geradores aleatórios para os dados que costumam aparecer 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.
Isso 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 você use a instância de java.util.Random fornecida na sua implementação.
A Starship Enterprise encontra muitos planetas em suas viagens.
No universo de Star Trek, os planetas são divididos em categorias com base em 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.
Implemente o método randomPlanetClass().
Ele deve retornar uma das classes planetárias de forma aleatória.
captainsLog.randomPlanetClass();
// => "K"
A Enterprise (número de registro NCC-1701) não é a única nave espacial voando por aí!
Quando ela se encontra com outra nave, Mary precisa anotar o número de registro dessa nave.
Os números de registro começam com o prefixo "NCC-" e depois usam um número de 1000 a 9999 (inclusive).
Implemente o método randomShipRegistryNumber() que retorna um número de registro de nave aleatório.
captainsLog.randomShipRegistryNumber();
// => "NCC-1947"
De que serve um diário se ele não inclui datas?
Uma data estelar é um número de ponto flutuante.
As aventuras da Starship Enterprise na primeira temporada de The Next Generation acontecem entre as datas estelares 41000.0 e 42000.0.
O "4" representa o século XXIV e o "1", a primeira temporada.
Implemente o método randomStardate() que retorna um número de ponto flutuante entre 41000.0 (inclusive) e 42000.0 (exclusive).
captainsLog.randomStardate();
// => 41458.15721310934
Crie sua conta no Exercism para aprender e dominar Java com 26 conceitos158 exercícios e mentoria humana de verdade, tudo de graça.