Molti programmi hanno bisogno di valori (pseudo)casuali per simulare eventi del mondo reale.
Tra gli esempi più comuni e familiari:
Generare valori davvero casuali con un computer è una sfida tecnica sorprendentemente difficile, ed è per questo che esistono anche i generatori «pseudocasuali».
La funzione Math.random() NON deve essere usata per applicazioni di sicurezza e crittografia!
Completa gli esercizi di apprendimento su questo concetto per saperne di più
In Javascript, puoi generare numeri pseudocasuali usando la funzione Math.random().
Restituirà un numero pseudocasuale in virgola mobile compreso tra 0 (incluso) e 1 (escluso).
Mary è una grande fan della serie TV Star Trek: The Next Generation. Spesso gioca a giochi di ruolo con carta e penna, dove lei e i suoi amici fingono di essere l'equipaggio dell'astronave Enterprise. Il personaggio di Mary è il capitano Picard, il che significa che deve tenere il diario del capitano. Adora la parte creativa del gioco, ma non le piace generare dati casuali sul momento.
Aiuta Mary creando dei generatori casuali per i dati che compaiono più spesso nel diario del capitano.
L'Enterprise (numero di registro NCC-1701) non è l'unica astronave in circolazione! Quando incontra un'altra astronave, Mary deve annotare il numero di registro di quell'astronave.
I numeri di registro iniziano con il prefisso "NCC-" e poi usano un numero da 1000 a 9999 (estremi inclusi).
Implementa la funzione randomShipRegistryNumber() che restituisce un numero di registro casuale per un'astronave.
randomShipRegistryNumber();
// => "NCC-1947"
A cosa serve un diario se non include le date?
Una data stellare è un numero in virgola mobile. Le avventure dell'astronave Enterprise della prima stagione di The Next Generation si svolgono tra le date stellari 41000.0 e 42000.0. Il "4" sta per il XXIV secolo, l'"1" per la prima stagione.
Implementa la funzione randomStardate che restituisce un numero in virgola mobile compreso tra 41000.0 (incluso) e 42000.0 (escluso).
randomStardate();
// => 41458.15721310934
L'astronave Enterprise incontra molti pianeti nei suoi viaggi. I pianeti dell'universo di Star Trek sono suddivisi in categorie in base alle loro proprietà. Per esempio, la Terra è un pianeta di classe M. Tutte le classi planetarie possibili sono: D, H, J, K, L, M, N, R, T e Y.
Implementa la funzione randomPlanetClass().
Dovrebbe restituire una delle classi planetarie a caso.
randomPlanetClass();
// => "K"
Iscriviti a Exercism per imparare e padroneggiare JavaScript con 37 concetti159 esercizi e il mentoring di persone reali, tutto gratis.