Autore Topic: Numeri casuali con Random RND  (Letto 3277 volte)

kletos

  • Neo-iscritto
  • *
  • Post: 5
  • Gioco Preferito: azteco
Numeri casuali con Random RND
« il: 05 Maggio 2015, 17:48:30 »
Ciao a tutti, ho realizzato con l'emulatore CCS64 un piccolo programmino per far generare numeri casuali da 1 a 90, tipo il gioco della tombola. Il programma funziona benissimo, però ho notato che ogni volta che eseguo il run i primi 90 numeri sono sempre gli stessi. Il programma è questo:
5 PRINT CHR$(147)
10 x=INT(100*RND(1)+1)
20 PRINT X

Ho forse dimenticato di inserire qualche comando importante? I numeri non dovrebbero essere veramente casuali?
Qualcuno può aiutarmi? Grazie

eregil

  • Administrator
  • Utente
  • *****
  • Post: 714
  • Gioco Preferito: Impossible Mission
Re:Numeri casuali con Random RND
« Risposta #1 il: 05 Maggio 2015, 23:29:59 »
A parte che il tuo programma non estrae numeri da 1 a 90 ma un numero da 1 a 100, probabilmente stai riavviando ogni volta l'emulatore prima di eseguire il programma, cosicché la sequenza di numeri pseudocasuali è sempre inizializzata allo stesso modo.

RND non "estrae" numeri realmente casuali perché il C64 non possiede un generatore hardware di numeri casuali; i numeri generati via software sono sempre pseudo-casuali e sono sempre riprodotti in una sequenza che deve essere inizializzata in maniera che sia il meno prevedibile possibile, di solito facendo ricorso al valore dell'orologio interno del C64 con RND(-TI), dopo un qualche intervento dell'utente.

Ho spiegato il significato del parametro di RND in questo post:

http://ready64.org/smf/index.php?topic=2695.msg18035#msg18035
Non rispondo a richieste private, di qualunque genere esse siano.
Per domande tecniche leggete le FAQ e usate l'apposito forum.
Per questioni amministrative contattate lo staff tramite il form Contatti sul sito.