-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 


indietro

[10] Perché i miei numeri casuali non sono casuali?

Se state usando una versione di Perl antecedente alla 5.004, dovete chiamare srand una volta, all'inizio del vostro programma, per inizializzare il generatore di numeri casuali.

	 BEGIN { srand() if $] < 5.004 }

La versione 5.004 e le successive chiamano automaticamente srand all'avvio. Non chiamate srand più di una volta -- rendereste i vostri numeri meno casuali, non di più.

I calcolatori sono bravi ad essere prevedibili, ma non nell'essere casuali (malgrado le apparenze causate dagli errori nei vostri programmi :-). Fate riferimento all'articolo random della collezione "Far More Than You Ever Wanted To Know" ["Molto più di quanto avreste mai voluto sapere", NdT], cortesia di Tom Phoenix, che parla di questo argomento. John Von Neumann disse "Chiunque tenti di generare numeri casuali con metodi deterministici vive, ovviamente, nel peccato".

Se volete numeri casuali più casuali di quanto rand (assieme a srand) possa fare, dovreste provare anche il modulo Math::TrulyRandom, disponibile su CPAN. Fa uso delle imperfezioni dell'orologio di sistema per generare numeri casuali, ma ci vuole un po' di tempo. Se volete un generatore di numeri pseudocasuali migliore di quello che il vostro sistema operativo mette a disposizione, consultate "Numerical Recipes in C" all'indirizzo http://www.nr.com/.

vedi in inglese

AUTORE E COPYRIGHT

Copyright (c) 1997, 1998, 1999, 2000, 2001 Tom Christiansen e Nathan Torkington. Tutti i diritti riservati.

Questa documentazione è libera; puoi ridistribuirla e/o modificarla secondo gli stessi termini applicati al Perl.

Indipendentemente dalle modalitè di distribuzione, tutti gli esempi di codice in questo file sono rilasciati al pubblico dominio. Potete, e siete incoraggiati a farlo, utilizzare il presente codice o qualunque forma derivata da esso nei vostri programmi per divertimento o per profitto. Un semplice commento nel codice che dia riconoscimento alle FAQ sarebbe cortese ma non è obbligatorio.

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google