Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - casualita' non casuale
Forum - Visual Basic 6 - casualita' non casuale - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Louis (Normal User)
Pro


Messaggi: 150
Iscritto: 22/04/2008

Segnala al moderatore
Postato alle 19:47
Sabato, 16/05/2009
Ciao a tutti
leggo da MSDN:
Codice sorgente - presumibilmente Visual Basic 6

  1. Se Randomize non viene utilizzata, quando la funzione Rnd (senza argomenti) viene chiamata per la prima volta, utilizza come base lo stesso numero. Per le chiamate successive la funzione utilizzerà l'ultimo numero generato.


Poi ripeto, a me sembra funzionare, ...
Non ho ben capito cosa dice theprogrammer al riguardo; infine concordo che il codice può essere ottimizzato.

  

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 20:26
Sabato, 16/05/2009
Testo quotato

Postato originariamente da Louis:
Non ho ben capito cosa dice theprogrammer al riguardo;



Per capirci ... senza Randomize, avvia il programma e segnati le prime due password generate. Poi chiudi il programma, avvialo nuovamente e controlla le prime due password ...

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 21:14
Sabato, 16/05/2009
comunque con randomize funziona.....mi daro' un occhio alle msdn e cerchero' su internet qualche informazione su questa funzione, anche per sapere se puo' creare problemi il suo utilizzo....anche perche' la mia esperienza mi insegna che pria di utilizzare qualcosa e' meglio conoscerla bene......

@theprogrammer:
il codice si puo' migliorare, cosa suggeriresti?....

grazie a tutti per le molteplici risposte che mi avete dato.....

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 21:47
Sabato, 16/05/2009
Testo quotato

Postato originariamente da muteblaster:

@theprogrammer:
il codice si puo' migliorare, cosa suggeriresti?....



Sicuramente il vettore di stringhe e la Split non servono ...

Codice sorgente - presumibilmente Visual Basic 6

  1. Randomize
  2.    
  3.     numerilettere = "abcdefghilmnopqrstuvz0123456789"
  4.    
  5.     psw = ""
  6.     For i = 1 To 5
  7.         psw = psw & Mid$(numerilettere, Int(Len(numerilettere) * Rnd() + 1), 1)
  8.     Next i


PM Quote
Avatar
Louis (Normal User)
Pro


Messaggi: 150
Iscritto: 22/04/2008

Segnala al moderatore
Postato alle 8:17
Domenica, 17/05/2009
Codice sorgente - presumibilmente Plain Text

  1. Per capirci ... senza Randomize, avvia il programma e segnati le prime due password generate. Poi chiudi il programma, avvialo nuovamente e controlla le prime due password ...



theprogrammer hai ragione !!  

:hail:

Ultima modifica effettuata da Louis il 17/05/2009 alle 8:18
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 8:27
Domenica, 17/05/2009
non ho trovato nessuna contro indicazione all'uso della funzione randomize, ne su msdn ne su internet .....quindi da quello che intuisco influisce solo sul codice che viene immediatamente dopo......infatti su altro codice sottostante( sempre all'interno dello stesso timer) non influisce, per creare un nick avevo una altra scelta casuale di caratteri ed ho dovuto ripetere randomize......

aggiunta la funzione randomize.....


PM Quote
Avatar
Xaratroom (Ex-Member)
Expert


Messaggi: 526
Iscritto: 03/04/2008

Segnala al moderatore
Postato alle 8:56
Domenica, 17/05/2009
http://msdn.microsoft.com/it-it/library/f7s023d2(loband).aspx
http://msdn.microsoft.com/it-it/library/8zedbtdt(loband).aspx

Dimmi cosa c'è di poco chiaro riguardo alla funzione rnd o randomize che te lo spiego io.

Testo quotato


Nella funzione Randomize([Number]) il valore dell'argomento Number viene utilizzato per inizializzare il generatore di numeri casuali della funzione Rnd, assegnandogli un nuovo valore di inizializzazione. Se Number viene omesso, come nuovo valore di inizializzazione verrà utilizzato il valore restituito dal timer di sistema.

Se la funzione Randomize non viene utilizzata, alla prima chiamata della funzione Rnd priva di argomenti verrà sempre utilizzato lo stesso numero di inizializzazione e in seguito l'ultimo numero generato come numero di inizializzazione.


È pure in italiano

Poi dice anche:
Testo quotato


Nota sulla sicurezza:
Poiché l'istruzione Random e la funzione Rnd iniziano con un valore di inizializzazione e generano numeri compresi in un intervallo finito, i risultati possono essere prevedibili per coloro che conoscono l'algoritmo utilizzato per la generazione dei numeri. Di conseguenza, si consiglia di non utilizzare l'istruzione Random e la funzione Rnd per generare numeri casuali da impiegare nella crittografia. Per ulteriori informazioni, vedere RandomNumberGenerator.


Ma in questo caso non credo sia così importante questa nota.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo