Muitos programas precisam de valores (pseudo)aleatórios para simular acontecimentos do mundo real.
Exemplos comuns e familiares incluem:
Gerar valores verdadeiramente aleatórios com um computador é um desafio técnico surpreendentemente difícil, e é por isso que também existem geradores "pseudoaleatórios".
A função Math.random() NÃO deve ser usada em aplicações de segurança e criptografia!
Completa o(s) exercício(s) de aprendizagem sobre este conceito para saberes mais
Em Javascript, podes gerar números pseudoaleatórios com a função Math.random().
Devolve um número pseudoaleatório de vírgula flutuante entre 0 (inclusive) e 1 (exclusive).
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 lápis, em que ela e os amigos fingem ser a tripulação da nave espacial Enterprise. A personagem da Mary é o capitão Picard, o que significa que tem de manter o diário do capitão. Adora a parte criativa do jogo, mas não gosta de gerar dados aleatórios na hora.
Ajuda a Mary a criar geradores aleatórios para os dados que aparecem habitualmente no diário do capitão.
A Enterprise (número de registo NCC-1701) não é a única nave espacial a voar por aí! Quando se cruza com outra nave espacial, a Mary precisa de anotar 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 (ambos inclusive).
Implementa a função randomShipRegistryNumber() que devolve um número de registo aleatório de nave espacial.
randomShipRegistryNumber();
// => "NCC-1947"
De que serve um diário se não incluir datas?
Uma data estelar é um número de vírgula flutuante. As aventuras da nave espacial 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, o "1" a primeira temporada.
Implementa a função randomStardate que devolve um número de vírgula flutuante entre 41000.0 (inclusive) e 42000.0 (exclusive).
randomStardate();
// => 41458.15721310934
A nave espacial Enterprise encontra muitos planetas nas suas viagens. No universo de Star Trek, os planetas estão divididos em categorias com base nas suas propriedades. Por exemplo, a Terra é um planeta de classe M. As classes planetárias possíveis são: D, H, J, K, L, M, N, R, T e Y.
Implementa a função randomPlanetClass().
Deve devolver uma das classes planetárias de forma aleatória.
randomPlanetClass();
// => "K"
Inscreve-te no Exercism para aprenderes e dominares JavaScript com 37 conceitos159 exercícios, e mentoria humana real, tudo grátis.