Il random è in realta uno pseudo random. Qual è il metodo piu' affidabile per generare dei numeri casuali?
Questo è quello che mi è successo e come ho risolto il problema. In ogni caso il risultato non mi convince pienamente...
Utilizzando questo script, e importando il risultato in un db access, contando i duplicati, mi è uscito un risultato simile a questo
1= 15% circa
2= 30% circa
3= 30% circa
4= 15% circa
ecco il codice:
allora ho applicato il seguente "correttivo" per portare il risultato dei "grandi numeri" su delle cifre piu' accettabili:codice:<% i = 0 While not i > 10000 Randomize() Nrandom = CInt((4 - 1)*Rnd() + 1 ) Response.Write " " & Nrandom i = i + 1 WEND %>
codice:<% i = 0 While not i > 10000 Randomize() Nrandom = CInt((5 - 1)*Rnd() + 1 ) 'correttivo If Nrandom = 5 THEN Nrandom = 1 END IF Response.Write " " & Nrandom i = i + 1 WEND %>
Infatti così facendo sono riuscito a grandi linee a ridistribuire euqamente la casualità di 10000 estrazioni su 4 numeri, avvicinandomi a quello che dovrebbe a grandi linee essere 25% per numero.
Questo è uno dei test effettuati con il correttivo.
Valore - NumDuplicati
1 - 1995
2 - 2651
3 - 2737
4 - 2618
Nonostante il correttivo il caso 1 è parecchio (oltre il 20%) sotto la media (che dovrebbe essere circa 2500)
La legge dei grandi numeri non è una scenza esatta, pero' la differenza di piu' del 20 % mi sembra TROPPA

Rispondi quotando