Muchos programas necesitan valores (pseudo)aleatorios para simular eventos del mundo real.
Algunos ejemplos comunes y conocidos son:
Generar valores verdaderamente aleatorios con una computadora es un desafío técnico sorprendentemente difícil, por eso también existen generadores «pseudoaleatorios».
¡La función Math.random() NO debe usarse para aplicaciones de seguridad ni criptográficas!
Completa los ejercicios de aprendizaje sobre este concepto para aprender más
En JavaScript, puedes generar números pseudoaleatorios usando la función Math.random().
Devuelve un número pseudoaleatorio de punto flotante entre 0 (inclusive) y 1 (exclusive).
Mary es una gran fan de la serie de televisión Star Trek: The Next Generation. A menudo juega juegos de rol de lápiz y papel, en los que ella y sus amigos fingen ser la tripulación de la nave estelar Enterprise. El personaje de Mary es el capitán Picard, lo que significa que tiene que llevar el registro del capitán. Le encanta la parte creativa del juego, pero no le gusta generar datos aleatorios sobre la marcha.
Ayuda a Mary creando generadores aleatorios para los datos que aparecen con frecuencia en el registro del capitán.
¡Enterprise (número de registro NCC-1701) no es la única nave estelar que anda por ahí! Cuando se encuentra con otra nave estelar, Mary necesita registrar el número de registro de esa nave.
Los números de registro comienzan con el prefijo «NCC-» y luego usan un número del 1000 al 9999 (ambos incluidos).
Implementa la función randomShipRegistryNumber() que devuelve un número de registro aleatorio de una nave estelar.
randomShipRegistryNumber();
// => "NCC-1947"
¿De qué sirve un registro si no incluye fechas?
Una fecha estelar es un número de punto flotante. Las aventuras de la nave estelar Enterprise de la primera temporada de The Next Generation transcurren entre las fechas estelares 41000.0 y 42000.0. El «4» representa el siglo XXIV, el «1» la primera temporada.
Implementa la función randomStardate que devuelve un número de punto flotante entre 41000.0 (incluido) y 42000.0 (excluido).
randomStardate();
// => 41458.15721310934
La nave estelar Enterprise se encuentra con muchos planetas en sus viajes. Los planetas del universo de Star Trek se dividen en categorías según sus propiedades. Por ejemplo, la Tierra es un planeta de clase M. Todas las clases planetarias posibles son: D, H, J, K, L, M, N, R, T y Y.
Implementa la función randomPlanetClass().
Debería devolver una de las clases planetarias al azar.
randomPlanetClass();
// => "K"
Regístrate en Exercism para aprender y dominar JavaScript con 37 conceptos159 ejercicios y mentoría humana real, todo gratis.