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 - RND
Forum - Visual Basic 6 - RND

Avatar
Aangelus (Normal User)
Pro


Messaggi: 143
Iscritto: 29/03/2011

Segnala al moderatore
Postato alle 22:59
Mercoledì, 19/06/2013
Salve a tutti ho un problema con il generatore di numeri casuali (o pseudocasuali), scrivendo poche righe per simulare il lancio di una moneta mi sono imbattuto in comportamenti strani dei miei 3 computer. cioè nel Pc ho simulato milioni di volte avendo come risultato uno sbilanciamento delle statistiche avendo più teste rimanendo in differenza delle due uscite  sempre dalla stessa parte. Tutte le uscite dei numeri sono registrate in un database
che tiene conto delle differenze delle due uscite e lo scarto si attiene intorno alle centinaia, mentre sul notebook pende sempre da una parte costantemente con differenza di circa 400. Mentre nel computer che uso io funziona benissimo nel senso che si alternano le differenze. Mi chiedevo se il problema fosse il sistema operativo nei primi due XP mentre quello che uso è VISTA?

Dim Numero as double
Dim Pari as double
Dim Dispari as double
Dim Differenza as double

Randomize
Numero = Fix(Rnd * 2)

if Numero = 0 then
Pari=Pari+1
Elseif Numero =1 then
Dispari=Dispari+1
End if
Differenza = Pari -Dispari

Ultima modifica effettuata da Aangelus il 21/06/2013 alle 0:13
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 5:50
Giovedì, 20/06/2013
Postaci il sorgente completo, altrimenti si puo' solo ipotizzare.


Il mio blog: https://piero.dev
PM Quote
Avatar
Aangelus (Normal User)
Pro


Messaggi: 143
Iscritto: 29/03/2011

Segnala al moderatore
Postato alle 22:40
Venerdì, 21/06/2013
Testo quotato

Postato originariamente da Aangelus:

Salve a tutti ho un problema con il generatore di numeri casuali (o pseudocasuali), scrivendo poche righe per simulare il lancio di una moneta mi sono imbattuto in comportamenti strani dei miei 3 computer. cioè nel Pc ho simulato milioni di volte avendo come risultato uno sbilanciamento delle statistiche avendo più teste rimanendo in differenza delle due uscite  sempre dalla stessa parte. Tutte le uscite dei numeri sono registrate in un database
che tiene conto delle differenze delle due uscite e lo scarto si attiene intorno alle centinaia, mentre sul notebook pende sempre da una parte costantemente con differenza di circa 400. Mentre nel computer che uso io funziona benissimo nel senso che si alternano le differenze. Mi chiedevo se il problema fosse il sistema operativo nei primi due XP mentre quello che uso è VISTA?

Dim Numero as double
Dim Pari as double
Dim Dispari as double
Dim Differenza as double

Randomize
Numero = Fix(Rnd * 2)

if Numero = 0 then
Pari=Pari+1
Elseif Numero =1 then
Dispari=Dispari+1
End if
Differenza = Pari -Dispari



Ho inserito l'altra parte di codice che mi chiedevi, suggerimenti  ????

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 14:38
Lunedì, 01/07/2013
mmm... l'unica osservazione che posso fare è che non c'è bisogno di usare la funzione Fix()... alternativamente puoi dichiarare Numero come una variabile intera e usare:
Numero = Rnd * 1

Ci sarà una conversione implicita da double a intero con approssimazione quindi Numero sarà (in maniera equivalente a prima) o 0 oppure 1

Puoi provare a cambiare il codice in questo modo alternativo, ma non credo che il risultato cambierà..

Non so come mai hai questo sbilanciamento.. mi ricordo che una volta provai a fare una cosa simile alla tua.. proprio perchè in realtà Rnd genera numeri pseudo-casuali però mi pare di ricordare che più o meno funzionasse bene. Non credo sia un problema di sistema operativo dato che, in teoria, l'algoritmo per generare numeri casuali dovrebbe essere molto simile, a maggior ragione per il fatto che sono tutti sistemi Microsoft

PM Quote
Avatar
Aangelus (Normal User)
Pro


Messaggi: 143
Iscritto: 29/03/2011

Segnala al moderatore
Postato alle 3:02
Domenica, 28/07/2013
Ti ringrazio per avermi detto la tua

PM Quote