CCalculate.Studio

🎲 Generatore di numeri casuali

Questo generatore estrae interi casuali dall'intervallo che scegli, se vuoi senza ripetizioni. Usa un seme invece dell'orologio, il che significa che lo stesso seme riproduce sempre esattamente la stessa estrazione: una proprietà che conta nella didattica, nella ricerca riproducibile e per chi deve poter mostrare il proprio procedimento. Cambia il seme per estrarre di nuovo.

Ultima revisione: 2026-07-07100% gratuito · Nessuna registrazione
Aggiungi come preferito su Google

A che cosa serve e a che cosa non serve questo generatore

I generatori pseudocasuali differiscono enormemente per gli usi a cui sono adatti. Questo è veloce, riproducibile e statisticamente corretto per l'uso quotidiano, e non è affatto una fonte di segreti.

UsoAdatto?Perché
Didattica, simulazioni, campionamentoSìEstrazioni riproducibili sono un vantaggio
Scegliere un vincitore, dadi, numeri della lotteriaSì, con un seme nuovoChi conosce il seme può riprodurre l'estrazione
Password, chiavi, token, identificativi di sessioneNoLo stato si ricava dall'output; usa il generatore di password
Gioco d'azzardo regolamentatoNoRichiedono hardware certificato o generatori crittografici
  • Entrambi gli estremi dell'intervallo sono compresi, quindi un intervallo da 1 a 100 contiene 100 valori possibili.
  • Senza reimmissione, il numero di estrazioni non può superare il numero di valori dell'intervallo. Il calcolatore rifiuta invece di ripetere in silenzio.

Che cos'è un generatore pseudocasuale

Un generatore di numeri pseudocasuali è un algoritmo deterministico che produce una sequenza capace di superare i test statistici di casualità. Non è casuale in senso fisico: è una ricorrenza fissa e, a partire da un valore iniziale dato — il seme —, produce sempre la stessa sequenza.

Questo è un generatore xorshift a 32 bit, pubblicato da George Marsaglia sul Journal of Statistical Software nel 2003. Funziona applicando ripetutamente l'or esclusivo fra un valore e copie di sé stesso traslate, con una terna di scorrimenti scelta perché la sequenza attraversi tutti gli stati a 32 bit non nulli prima di ripetersi.

L'uso del seme è deliberato e non un limite. Ogni calcolatore di questo sito è una funzione pura dei propri dati in ingresso, ed è questo a rendere i risultati riproducibili e verificabili. Ti dà inoltre qualcosa che un generatore guidato dall'orologio non può offrire: cita il seme accanto ai tuoi numeri e chiunque riprodurrà la tua estrazione esattamente.

Come usare il generatore di numeri casuali

  1. Imposta il valore minimo e quello massimo. Entrambi gli estremi sono compresi nell'intervallo.
  2. Scegli quanti numeri estrarre.
  3. Decidi se sono ammesse ripetizioni. Senza reimmissione nessun valore può uscire due volte, quindi non puoi estrarre più numeri di quanti l'intervallo ne contenga.
  4. Cambia il seme ogni volta che vuoi un'estrazione diversa. Lo stesso seme restituisce sempre gli stessi numeri.

Come vengono prodotti i numeri

x = x XOR (x << 13); x = x XOR (x >> 17); x = x XOR (x << 5)
u = x / 2^32, con 0 <= u < 1
valore = minimo + parte intera(u x (massimo - minimo + 1))
valori nell'intervallo = massimo - minimo + 1

La ricorrenza xorshift trasforma tre volte uno stato a 32 bit a ogni estrazione, poi divide per 2^32 per dare un valore nell'intervallo da zero fino a uno escluso. Moltiplicare per l'ampiezza dell'intervallo e prendere la parte intera lo porta a un intero.

L'estrazione senza reimmissione usa un mescolamento parziale di Fisher-Yates sull'intervallo. Ogni estrazione porta al proprio posto un elemento rimasto, il che seleziona un sottoinsieme uniformemente casuale in un solo passaggio e non può bloccarsi come accade a un approccio estrai-e-riprova via via che l'insieme si svuota.

Errori comuni

  • Usare un generatore pseudocasuale per qualcosa di segreto. La sequenza è interamente determinata dal seme.
  • Attendersi numeri nuovi senza cambiare il seme. La riproducibilità è lo scopo; il seme è il comando.
  • Dare per scontato che l'estremo superiore sia escluso. Qui entrambi gli estremi sono compresi.
  • Chiedere più valori distinti di quanti l'intervallo ne contenga.
  • Leggere una serie di valori simili come un difetto. Il raggruppamento è una proprietà normale delle sequenze casuali, e la sua assenza sarebbe più sospetta della sua presenza.

Domande frequenti

Perché lo stesso seme dà sempre gli stessi numeri?

Perché un generatore pseudocasuale è una ricorrenza deterministica e il seme è il suo stato iniziale. È un pregio e non un difetto: citare il seme permette a chiunque di riprodurre la tua estrazione esattamente, che è ciò di cui hanno bisogno la ricerca riproducibile e le dimostrazioni in aula. Per estrarre diversamente, cambia il seme.

È abbastanza casuale per un sorteggio a premi?

Per un sorteggio informale sì, purché tu scelga un seme che i partecipanti non possano prevedere e lo pubblichi dopo, così il risultato sia verificabile. Per il gioco regolamentato no: quei contesti richiedono generatori hardware certificati o algoritmi crittograficamente sicuri.

Posso usarlo per generare una password?

No. Lo stato interno di un generatore xorshift si può ricavare da una breve serie del suo output, quindi tutto ciò che ne deriva è prevedibile. Usa il generatore di password di questo sito, che attinge alla sorgente casuale crittograficamente sicura del sistema operativo.

Che cosa significa estrarre senza reimmissione?

Significa che nessun valore può uscire più di una volta, come quando si estraggono palline della lotteria. Poiché ogni estrazione toglie un valore dall'insieme, non puoi estrarre più numeri di quanti l'intervallo ne contenga: estrarre sei valori distinti da un intervallo di cinque è impossibile.

I numeri sono distribuiti uniformemente?

Sì, fino alla precisione del generatore sottostante. Ogni valore dell'intervallo è ugualmente probabile, e la modalità senza reimmissione usa un mescolamento parziale di Fisher-Yates, che seleziona ogni sottoinsieme di una data dimensione con uguale probabilità.

Fonti

  1. Marsaglia G. Xorshift RNGs. Journal of Statistical Software 2003; 8(14): 1-6. doi:10.18637/jss.v008.i14.
  2. Knuth DE. The Art of Computer Programming, Volume 2: Seminumerical Algorithms, 3rd edition. Addison-Wesley, 1997 — random number generation and statistical testing.
  3. Fisher RA, Yates F. Statistical Tables for Biological, Agricultural and Medical Research. Oliver and Boyd, 1938 — the shuffle used for sampling without replacement.
  4. L'Ecuyer P, Simard R. TestU01: A C library for empirical testing of random number generators. ACM Transactions on Mathematical Software 2007; 33(4): 22.

Statistica · Tutti i calcolatori

Calcolatori correlati