Simulazione
Inviato: sab gen 31, 2009 7:03 pm
In questi tempi di recessione, contrariamente al mio credo sull’argomento, mi è venuta voglia di giocare al lotto, ma soltanto con il Decimal Basic, per divertirmi a costo zero e per provare a realizzare alcune funzioni con i file, con i pochi strumenti disponibili.
Tuttavia, chi vuole può provarci per davvero, puntando pochi spiccioli.
Si tratta di giocare 4 numeri per ambo su tutte le ruote, con una puntata iniziale di 1 euro: l’obiettivo è quello di vicere 1 euro (tolte le spese) alla fine del ciclo di giocate.
Avverto fin da subito che fra tutti quelli che ci proveranno, ci saranno quelli che vinceranno e quelli che perderanno.
Bisogna scegliere una directory in cui inserire il programma (es: C:\lotto).
In quella directory, il programma genererà un file di nome “quartina.txt”, nella quale sarà memorizzato il gioco da fare, cioè una quartina.
Alla secomda giocata, la quartina già c’è ed il programma genererà una una nuova quartina contenente 2 dei vecchi numeri già giocati e 2 nuovi; così avverrà ogni volta.
All’inizio però bisogna rispondere ad una domanda, ovvero se con l’ultima giocata effettuata si è vinto oppure no: se no, il gioco continua con la modalità descritta; se invece si è ottenuta la vincita, il programma genererà 4 nuovi numeri.
Per quanto riguarda le puntate, poiché il tipo di giocata viene pagato 25/6-6%, bisognerà puntare ogni volta, fino alla vincita, fino al fallimento o fino all’abbandono, X=(S+V)*12/35, in cui S è la Somma già giocata senza mai vincere e V quella che si vuole vincere (cioè 1 euro).
Quindi la prima volta gioco 1 euro, la seconda (1+1)*12/35 < 1, che di conseguenza devo arrotondare a 1, la terza (2+1)*12/35, che dovrò arrotondare a 2, e così via dicendo.
Alla prima vincita, se mai ci sarà, avrò vinto 1 euro o poco più, considerati gli arrotondamenti da effettuare; quindi si potrà iniziare daccapo con la prima puntata da 1 euro, con i 4 nuovi numeri iniziali che saranno generati dal programma, ove si sia risposto S alla domanda effettuata.
Ebbene, anni fa segui per un certo periodo questo tipo di gioco a basso rendimento, con una certa soddisfazione e ritirandomi in vincita, essendomi stufato di giocare: quella volta giocavo una stessa quartina per ambo su tutte, per 2 volte di seguito; alla terza giocata cambiavo tutti i 4 numeri e li giocavo dunque per 2 volte, continuando così.
Quella volta, avevo calcolato che una quartina per ambo su tutte le ruote, giocata per 2 volte di seguito, fosse vincente con una probabilità del 25%, il che è una cosa notevole: la vincita si realizzò sempre nell’ambito di 16 giocate, ma evidentemente fui fortunato.
Mi domando quale sarebbe la probabilità di vincita in questo caso, cioè giocando per 2 volte, ma cambiando 2 numeri nella seconda giocata.
Segue il programma in Decimal Basic, per chi è curioso di sapere come ho risolto le problematiche del linguaggio, rispetto a quanto volevo realizzare, ma anche per chi si volesse cimentare nel gioco reale, o in una simulazione di gioco, che raccomando di progettare a basso costo.
Preciso tuttavia che volendo prevedere una situazione sfavorevole per 15 giocate successive, alla sedicesima bisognerebbe puntare ben 72 euro, per un totale di 281 euro giocati: in caso di vincita si incasserebbero 282 euro, con una vincita di 1 euro, obiettivo prefissato.
Il gioco andrebbe fatto alla vecchia maniera, cioè ogni sabato, in modo da diluire il tutto in 4 mesi, anzicché un solo mese, o poco più.
Dunque, investire 282 euro per vincerne 1 in 4 mesi, significa guadagnare l’ 1,06% annuo, cioè più di quanto dà una banca, mentre farlo con le 3 giocate settimanali, significa ottenere il risultato in una quarantina di giorni, cioè con un guadagno del 3,23%, meglio ancora: ecco perché la gente si dà al gioco (quella volta che giocavo, le banche davano di più ed ecco perché smisi).
Però, però, c’è un ma: siamo sicuri che entro 16 giocate la vincita è certa?
Se ne occorressero 32?
Alla 32esima giocata, bisognerebbe pagare 8081 euro, con una spesa totale di 31648 euro, con una vincita di 2,58 euro, grazie agli arrotondamenti : ecco perché non conviene giocare.
Ad ogni modo, se qualcuno ci prova e vince, anche se in simulazione, un media-obolo floreale animato non sarebbe sgradito, mentre per il caso contrario declino ogni responsabilità.
Vediamo chi sarà più fortunato?
Io per questa sera simulgiocherò 53 58 34 12 e per martedi 34 12 66 46; che probabilità ho di vincere almeno un ambo su tutte le ruote?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
DIM a$(4)
LET b$=""
OPEN #1:NAME "c:\lotto\quartina.txt" !'(apri il file per leggere e per scrivere)
!'(Se hai vinto, inizia un nuovo gioco con 4 nuovi numeri)
PRINT "Se hai vinto qualcosa con l'ultima giocata, premi S, altrimenti premi un altro tasto"
DO
CHARACTER INPUT e$
LOOP WHILE e$=""
LET e$=UCASE$(e$)
IF e$="S" THEN ERASE#1
PRINT
PRINT
!'(guarda se il file contiene già numeri, oppure no)
DO
INPUT#1, IF MISSING THEN EXIT DO:b$
LOOP
SET #1:POINTER BEGIN
RANDOMIZE
IF b$="" THEN !'(se il file è stato appena creato per la prima volta)
FOR m=1 TO 4 !'(genera 4 numeri)
10
LET x=1+INT(RND*90)
FOR n=1 TO m-1
IF x=VAL(a$(n)) THEN GOTO 10
NEXT N
LET a$(m)=STR$(x)
NEXT M
ELSE !'(conserva gli ultimi 2 numeri della quartina preesistente e generane 2 nuovi)
FOR m=1 TO 4
INPUT#1:a$(m)
NEXT M
LET a$(1)=a$(3)
LET a$(2)=a$(4)
FOR m=3 TO 4
20
LET x=1+INT(RND*90)
FOR n=1 TO m-1
IF x=VAL(a$(n)) THEN GOTO 20
NEXT N
LET a$(m)=STR$(x)
NEXT M
END IF
ERASE #1
FOR m=1 TO 4 !'(archivia i 4 numeri nel file "quartina.txt")
WRITE #1:a$(m)
NEXT M
PRINT "Gioca per ambo,su tutte le ruote, la seguente quartina:"
PRINT
FOR m=1 TO 4
PRINT a$(m);" ";
NEXT M
30
CLOSE #1
PRINT
PRINT
PRINT "per finire, barra SPAZIO, per nuova giocata, prima SPAZIO e poi RUN"
DO
CHARACTER INPUT e$
LOOP UNTIL e$=" "
END
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Segue il piano delle puntate fino a 50 giocate consecutive, senza aver mai vinto:
LET s=0
FOR m=1 TO 50
LET x=CEIL((s+1)*12/35)
LET s=s+x
PRINT USING "##) ":m;
PRINT x;s
NEXT M
END
In questo sfortunato, ma non improbabile caso, per vincere 1 euro, bisogna investire oltre 12 miliardi di vecchie lire…..auguri !!!
Tuttavia, chi vuole può provarci per davvero, puntando pochi spiccioli.
Si tratta di giocare 4 numeri per ambo su tutte le ruote, con una puntata iniziale di 1 euro: l’obiettivo è quello di vicere 1 euro (tolte le spese) alla fine del ciclo di giocate.
Avverto fin da subito che fra tutti quelli che ci proveranno, ci saranno quelli che vinceranno e quelli che perderanno.
Bisogna scegliere una directory in cui inserire il programma (es: C:\lotto).
In quella directory, il programma genererà un file di nome “quartina.txt”, nella quale sarà memorizzato il gioco da fare, cioè una quartina.
Alla secomda giocata, la quartina già c’è ed il programma genererà una una nuova quartina contenente 2 dei vecchi numeri già giocati e 2 nuovi; così avverrà ogni volta.
All’inizio però bisogna rispondere ad una domanda, ovvero se con l’ultima giocata effettuata si è vinto oppure no: se no, il gioco continua con la modalità descritta; se invece si è ottenuta la vincita, il programma genererà 4 nuovi numeri.
Per quanto riguarda le puntate, poiché il tipo di giocata viene pagato 25/6-6%, bisognerà puntare ogni volta, fino alla vincita, fino al fallimento o fino all’abbandono, X=(S+V)*12/35, in cui S è la Somma già giocata senza mai vincere e V quella che si vuole vincere (cioè 1 euro).
Quindi la prima volta gioco 1 euro, la seconda (1+1)*12/35 < 1, che di conseguenza devo arrotondare a 1, la terza (2+1)*12/35, che dovrò arrotondare a 2, e così via dicendo.
Alla prima vincita, se mai ci sarà, avrò vinto 1 euro o poco più, considerati gli arrotondamenti da effettuare; quindi si potrà iniziare daccapo con la prima puntata da 1 euro, con i 4 nuovi numeri iniziali che saranno generati dal programma, ove si sia risposto S alla domanda effettuata.
Ebbene, anni fa segui per un certo periodo questo tipo di gioco a basso rendimento, con una certa soddisfazione e ritirandomi in vincita, essendomi stufato di giocare: quella volta giocavo una stessa quartina per ambo su tutte, per 2 volte di seguito; alla terza giocata cambiavo tutti i 4 numeri e li giocavo dunque per 2 volte, continuando così.
Quella volta, avevo calcolato che una quartina per ambo su tutte le ruote, giocata per 2 volte di seguito, fosse vincente con una probabilità del 25%, il che è una cosa notevole: la vincita si realizzò sempre nell’ambito di 16 giocate, ma evidentemente fui fortunato.
Mi domando quale sarebbe la probabilità di vincita in questo caso, cioè giocando per 2 volte, ma cambiando 2 numeri nella seconda giocata.
Segue il programma in Decimal Basic, per chi è curioso di sapere come ho risolto le problematiche del linguaggio, rispetto a quanto volevo realizzare, ma anche per chi si volesse cimentare nel gioco reale, o in una simulazione di gioco, che raccomando di progettare a basso costo.
Preciso tuttavia che volendo prevedere una situazione sfavorevole per 15 giocate successive, alla sedicesima bisognerebbe puntare ben 72 euro, per un totale di 281 euro giocati: in caso di vincita si incasserebbero 282 euro, con una vincita di 1 euro, obiettivo prefissato.
Il gioco andrebbe fatto alla vecchia maniera, cioè ogni sabato, in modo da diluire il tutto in 4 mesi, anzicché un solo mese, o poco più.
Dunque, investire 282 euro per vincerne 1 in 4 mesi, significa guadagnare l’ 1,06% annuo, cioè più di quanto dà una banca, mentre farlo con le 3 giocate settimanali, significa ottenere il risultato in una quarantina di giorni, cioè con un guadagno del 3,23%, meglio ancora: ecco perché la gente si dà al gioco (quella volta che giocavo, le banche davano di più ed ecco perché smisi).
Però, però, c’è un ma: siamo sicuri che entro 16 giocate la vincita è certa?
Se ne occorressero 32?
Alla 32esima giocata, bisognerebbe pagare 8081 euro, con una spesa totale di 31648 euro, con una vincita di 2,58 euro, grazie agli arrotondamenti : ecco perché non conviene giocare.
Ad ogni modo, se qualcuno ci prova e vince, anche se in simulazione, un media-obolo floreale animato non sarebbe sgradito, mentre per il caso contrario declino ogni responsabilità.
Vediamo chi sarà più fortunato?
Io per questa sera simulgiocherò 53 58 34 12 e per martedi 34 12 66 46; che probabilità ho di vincere almeno un ambo su tutte le ruote?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
DIM a$(4)
LET b$=""
OPEN #1:NAME "c:\lotto\quartina.txt" !'(apri il file per leggere e per scrivere)
!'(Se hai vinto, inizia un nuovo gioco con 4 nuovi numeri)
PRINT "Se hai vinto qualcosa con l'ultima giocata, premi S, altrimenti premi un altro tasto"
DO
CHARACTER INPUT e$
LOOP WHILE e$=""
LET e$=UCASE$(e$)
IF e$="S" THEN ERASE#1
!'(guarda se il file contiene già numeri, oppure no)
DO
INPUT#1, IF MISSING THEN EXIT DO:b$
LOOP
SET #1:POINTER BEGIN
RANDOMIZE
IF b$="" THEN !'(se il file è stato appena creato per la prima volta)
FOR m=1 TO 4 !'(genera 4 numeri)
10
LET x=1+INT(RND*90)
FOR n=1 TO m-1
IF x=VAL(a$(n)) THEN GOTO 10
NEXT N
LET a$(m)=STR$(x)
NEXT M
ELSE !'(conserva gli ultimi 2 numeri della quartina preesistente e generane 2 nuovi)
FOR m=1 TO 4
INPUT#1:a$(m)
NEXT M
LET a$(1)=a$(3)
LET a$(2)=a$(4)
FOR m=3 TO 4
20
LET x=1+INT(RND*90)
FOR n=1 TO m-1
IF x=VAL(a$(n)) THEN GOTO 20
NEXT N
LET a$(m)=STR$(x)
NEXT M
END IF
ERASE #1
FOR m=1 TO 4 !'(archivia i 4 numeri nel file "quartina.txt")
WRITE #1:a$(m)
NEXT M
PRINT "Gioca per ambo,su tutte le ruote, la seguente quartina:"
FOR m=1 TO 4
PRINT a$(m);" ";
NEXT M
30
CLOSE #1
PRINT "per finire, barra SPAZIO, per nuova giocata, prima SPAZIO e poi RUN"
DO
CHARACTER INPUT e$
LOOP UNTIL e$=" "
END
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Segue il piano delle puntate fino a 50 giocate consecutive, senza aver mai vinto:
LET s=0
FOR m=1 TO 50
LET x=CEIL((s+1)*12/35)
LET s=s+x
PRINT USING "##) ":m;
PRINT x;s
NEXT M
END
In questo sfortunato, ma non improbabile caso, per vincere 1 euro, bisogna investire oltre 12 miliardi di vecchie lire…..auguri !!!