Come generare numeri casuali in Javascript
Introduzione
Javascript è comunemente utilizzato per la programmazione Web, per la creazione di siti internet e applicazioni web, e ha la caratteristica di poter generare degli effetti interattivi, dinamici ad impatto, molto accattivanti, in qualsiasi pagina web di consultazione generale. JavaScript è un ?linguaggio interpretato? in quanto il codice da cui è composto non deve essere compilato, ma sarà compito del Browser che si sta utilizzando interpretare la sintassi. Attraverso questa guida, in pochi semplici passi, capiremo come possiamo scrivere il codice per riuscire a generare numeri casuali in Javascript. Questa operazione è necessaria, per esempio, per poter assegnare un numero ID casuale e univoco ad un utente specifico, oppure a supporto di funzioni matematiche.
Occorrente
- Internet
- Pc
Funzione
Per JavaScript esiste una funzione precostituita che consente la generazione di numeri casuali e, nello specifico, si utilizza il metodo Random (), classe Math, stiamo parlando dell?istruzione Math Random(), che permette di generare un numero casuale tra 0 ed 1, compresi i decimali. Nei passi che seguono ci occuperemo anche di trattare l?istruzione Math.ceil() che permette di riuscire ad arrotondare per eccesso al numero intero più vicino. Inoltre, affronteremo una panoramica generale sulle istruzioni che potrebbero tornare utili nel procedimento di generazione del codice.
Calcolo
Nell'informatica è impossibile generare numeri completamente casuali. Questo perché ogni calcolo all'interno di un computer ha una base logica di causa ed effetto, mentre gli eventi casuali non seguono tale logica.I computer non sono in grado di creare qualcosa di veramente casuale. La vera casualità è possibile solo attraverso una fonte di dati esterni che un computer non può generare, come il movimento di molte lampade di lava contemporaneamente (che è stato utilizzato come crittografia casuale indistruttibile nel mondo reale), rumore meteorologico o decadimento nucleare. La soluzione utilizzata da Javascript e da altri linguaggi di programmazione per implementare la casualità è la generazione di numeri "pseudo-casuali". I numeri casuali Javascript iniziano da un valore interno nascosto chiamato "seme". Il seme è un punto di partenza per una sequenza nascosta di numeri che sono distribuiti uniformemente in tutto il loro possibile intervallo. vi propongo sarà in grado di generare un numero casuale, in un intervallo tra 10 e 50, valori che possono essere compresi tra un minimo e un massimo arbitrario. Vediamo ora nel dettaglio come deve apparire la stringa, che sarà necessario copiare e incollare:
var massimo = 50,
minimo = 10;
function numeroCasuale (massimo, minimo) {
return Math. Ceil (Math. Random () * (massimo - minimo + 1)) + minimo;
}
numeroCasuale (massimo, minimo);
La sintassi, nello specifico, genera un numero casuale tra 0 e 1, e questo sta a significare che la risultante potrà essere zero, ma sarà comunque sempre minore di 1. Il valore ottenuto andrà moltiplicato per la differenza tra il massimo e il minimo, in seguito bisognerà aggiungere il valore +1 (math. Random () non rimanda mai il numero 1.) Otterremo, in questo modo, un numero che presenta, come range, dallo 0 alla differenza tra massimo ? minimo, e con la stringa Math. Ceil () per eccesso, arrotondiamo al numero intero più vicino e sommiamo il minimo, esattamente come da codice.
Programmatori
Fortunatamente, ci sono semplici funzioni che i programmatori possono creare per rendere più gestibili i numeri pseudo-casuali. Il resto di questa sezione ti mostrerà come creare quelle funzioni, quindi metterle tutte insieme in un singolo generatore di numeri pseudo-casuali. Cosa importante che bisogna conoscere, è che la classe Math non lavora su istanze di oggetti. Bensì permette di accedere ai suoi metodi semplicemente attraverso la notazione generale:
Math. Nome_metodo ();
Math. Nome_proprietà
Dove nel ?nome_proprietà? possiamo trovare le diverse costanti matematiche: ?PI?: genera un valore approssimato di Pi greco; ?E? genera un valore della costante matematica E; ?LN2 e LN10? genera il valore di logaritmo di 2 e 10.
Nel ?nome_metodo? inseriamo una lista di metodi che sono in correlazione con funzioni matematiche e trigonometriche: ?abs () restituisce il modulo assoluto del numero inserito come argomento; ?min () e max () ? come da esempio nella guida, presi due numeri restituisce il minimo e il massimo; ?sqrt () e pow (b, n) ? restituisce la radice quadrata del numero passato o l?ennesima potenza del numero b; ?sin (), cos () e tan () ? genera il seno, coseno e tangente trigonometrica.
Arrotondamento
Infine, è possibile arrotondare il numero restituito utilizzando tre metodi differenti e tre distinte stringhe: come abbiamo visto in precedenza Math. Cell, che arrotonda per eccesso al numero intero più vicino: Math. Ceil (11.02) //restituisce 12 Math. Ceil (-7.3) //restituisce -7.
Math. Floor, che arrotonda l'oggetto per difetto al numero intero minore più vicino: Math. Floor (9.01) //restituisce 9, Math. Floor (-4.2) //restituisce -4.
L'ultimo è Math.round(), che arrotonda per eccesso quando la parte decimale è maggiore o uguale a 5, altrimenti, in automatico, arrotonda per difetto: Math. Round (8.01) //restituisce 8, Math. Round (-3.3) //restituisce -3, Math. Round (1.5) //restituisce 2.
Script
Abbiamo quindi visto tutti i passaggi da seguire, in maniera molto scrupolosa. Ora non vi resta che provare lo script! Qualora non vi fosse chiaro qualche passaggio, oppure se avete delle lacune in ambito di programmazione, vi consiglio di consultare l'apposito manuale di Javascript, nel quale potrete reperire tutte le informazioni dettagliate per poter generare dei numeri casuali ed, eventualmente, testare altre funzioni. Invece, per tutti i non addetti ai lavori che vogliono cimentarsi nella programmazione web, consiglio di partire dalle basi, andando a studiare i principali linguaggi di programmazione, in modo tale da poter comprendere a fondo i vari codici, per poi provare a utilizzarli.
Consigli
- Fai attenzione a determinati valori seme, come 25, che hanno un ciclo più breve o fanno sì che l'algoritmo ripeta un valore indefinitamente.