PandaPandoso
Profilo di
Nome | PandaPandoso |
---|---|
Indirizzo email | n/a |
Messaggi | 3 |
-
- 2017-05-26 00:40:25
- Re: Problema con il modulo random
- Forum >> Principianti
- Probabilmente hai ragione. Grazie mille per il tuo aiuto!
-
- 2017-05-25 12:50:15
- Re: Problema con il modulo random
- Forum >> Principianti
- Ciao Daniele, prima di tutto grazie per avermi risposto così velocemente. Immaginavo che il programma fosse molto grezzo, devo ancora migliorare parecchio in ogni aspetto. Detto questo la tua modifica è chiarissima, vorrei spiegarti meglio a cosa sto puntando.
Facciamo finta che il programma scritto da me simuli un classico lancio della monetina. Io voglio che il programma simuli 1000 lanci, restituendo poi il numero dei risultati positivi.
Dopo di che voglio che questo ciclo da 1000 eventi venga ripetuto 10000 volte. Ciascuna volta verrà ritornata un'esecuzione positiva se nei 1000 lanci almeno 501 sono stati positivi, negativa se sono stati inferiori. Mi accorgo solo ora di aver invertito eventi positivi e negativi nel mio programma, ma il succo non cambia.
Eseguendo il programma, proprio per via di questo 50/50 di probabilità, una volta gli eventi positivi e una quelli negativi (in media), dovrebbero superare i 5000. Ma nonostante io esegua il programma in continuazione, sono sempre gli eventi positivi ad essere superiori. Questo mi fa pensare che da qualche parte nel mio programma ci sia un errore. Ho modificato il tuo script perché eseguisse la stesse azioni del mio, ma il risultato non cambia. Quindi non capisco, sbaglio qualcosa?
Per evitarti la scocciatura di eseguirlo, visto che ci mette un po', questo è uno stamp di 10 esecuzioni appena fatte del primo programma postato, senza modifiche.
--- Ultima modifica di PandaPandoso in data 2017-05-25 12:56:51 ---
-
- 2017-05-25 10:22:44
- Problema con il modulo random
- Forum >> Principianti
- Ciao a tutti Sono un totale novizio della programmazione, spero che qualcuno possa risolvere il mio problema.
Ho creato uno script semplicissimo: una prima funzione genera un numero casuale tra 1 e 100 tramite il modulo random, se il numero è pari l'evento viene considerato positivo. Il tutto viene ripetuto per 1000 volte.
Una seconda funzione crea un ciclo da 10000 eventi, ognuno dei quali svolge la prima funzione. Alla fine di questa seconda funzione viene riportato il numero dei cicli positivi e di quelli negativi. Questo è lo script.
def EventoCasuale(): import random EventoPositivo = 0 for Evento in range(1000): Evento = random.randint(1, 100) if Evento % 2 == 0: EventoPositivo = EventoPositivo + 1 return EventoPositivo def Ciclo(): SessioniPositive = 0 SessioniNegative = 0 for x in range(10000): x = EventoCasuale() if x <=500: SessioniPositive = SessioniPositive + 1 if x > 500: SessioniNegative = SessioniNegative + 1 print ("Sessioni positive:", SessioniPositive) print ("Sessioni negative:", SessioniNegative) print () Ciclo()
Ora il problema è questo: testando il programma, dovrei avere un ovvio alternarsi di eventi positivi e negativi, visto che il programma dovrebbe simulare un evento totalmente casuale al 50/50 ripetuto migliaia di volte. Ma non importa quante volte ci provi, le "sessioni positive" sono sempre superiori a quelle negative. Sembra quasi che la percentuale sia sballata. Ho testato letteralmente il programma 20 volte prima di postare questa domanda, giusto per essere sicuro. Ovviamente sbaglio qualcosa, solo non capisco cosa. Spero che qualcuno possa illuminarmi