Novità

Buongiorno, chiedo se è possibile fare uno script o inserire in spaziometria i tabelloni analitici comparati.

claudio8

Premium Member
Micro mi hai messo i link. ho provato ad usarli ma non va bene.
Mi devi riportare gli script con specificato il n° del post inmodo che io possa leggere i commenti da cellulare e visionare gli script sul pc.
saluti
 

micro__

Advanced Member >PLATINUM<
ho finito adesso...


#1
skygirl
Ciao volevo sapere se con Spaziometria è possibile individuare i ritardi di rigo del tabellone analitico così come individuati da jp4 con L8+ e con Visual lotto 7 in questo 3d
grazie
#3
LuigiB
ciao, sembrerebbe che genova non si sia ancora sfaldata ... ecco lo script
Option Explicit
Sub Main
Dim Ini,Fin,idEstr,nRit,nRuota,nDaFare,nFatte,p,n,k,nSfald ,bValida
Dim cMaxRigo,cSorte
Dim cIdRit,cIdRitMax,cIdFreq
cIdRit = 0
cIdRitMax = 1
cIdFreq = 3
cMaxRigo = 80
cSorte = 1
ReDim aRitPerRigo(cMaxRigo,12,3)
Ini = EstrazioneIni
Fin = EstrazioneFin
nDaFare = Fin -(Ini - 1)
For idEstr = Ini To Fin - 1
ReDim aNum(5)
Call GeneraAnaliticoTurbo ( idEstr)
For nRuota = 1 To 12
If nRuota <> 11 Then
Call GetArrayNumeriRuota(idEstr + 1,nRuota,aNum)
ReDim aBNumEstrSucc(90)
For p = 1 To 5
aBNumEstrSucc(aNum(p)) = True
Next
For nRit = 0 To cMaxRigo
nSfald = 0
'bValida = False
For p = 1 To 5
n = TabelloneAnaliticoTurbo(nRit,nRuota,p)
'If n >0 Then bValida = True
If aBNumEstrSucc(n) Then
nSfald = nSfald + 1
End If
Next
'If bValida Then
If nSfald >= cSorte Then
If aRitPerRigo(nRit,nRuota,cIdRit) > aRitPerRigo(nRit,nRuota,cIdRitMax) Then
aRitPerRigo(nRit,nRuota,cIdRitMax) = aRitPerRigo(nRit,nRuota,cIdRit)
End If
aRitPerRigo(nRit,nRuota,cIdRit) = 0
aRitPerRigo(nRit,nRuota,cIdFreq) = aRitPerRigo(nRit,nRuota,cIdFreq) + 1
Else
aRitPerRigo(nRit,nRuota,cIdRit) = aRitPerRigo(nRit,nRuota,cIdRit) + 1
End If
'End If
If ScriptInterrotto Then Exit For
Next
End If
If ScriptInterrotto Then Exit For
Next
nFatte = nFatte + 1
Call AvanzamentoElab(1,nDaFare,nFatte)
If ScriptInterrotto Then Exit For
Next
ReDim aV(5)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ruota"
Messaggio "Creazione tabella"
DoEventsEx
Call InitTabella(aV )
For nRuota = 1 To 12
If nRuota <> 11 Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,nRuota,cIdRit)
aV(3) = aRitPerRigo(k,nRuota,cIdRitMax)
aV(4) = aRitPerRigo(k,nRuota,cIdFreq)
aV(5) = NomeRuota(nRuota)
Call AddRigaTabella(aV)
Next
End If
Next
Call CreaTabella(2 )
End Sub
#4
Joe91
Ciao Luigi.
Ho dato una controllata a questo tuo script e sembra funzionare benone.
Trova gli stessi ritardi attuali calcolati da altri programmi.
#6
LuigiB
cioa Joe , grazie del controllo .. un salutone anche a te legend ...
per gestire meglio la ruota nazionale (quando questa non esisteva) bisognerebbe apportare questa modifica
il codice hrigio è gia presente va inserto il codice scritto in blu
If n > 0 Then
If aBNumEstrSucc(n) Then
End If

 

micro__

Advanced Member >PLATINUM<
#9
LuigiB
aggiungo dell migliorie ..
Option Explicit
Sub Main
Dim Ini,Fin,idEstr,nRit,nRuota,nDaFare,nFatte,p,n,k,nSfald,bValida,sNum,bMostraSoloRigheConNimeri
Dim cMaxRigo,cSorte
Dim cIdRit,cIdRitMax,cIdFreq
cIdRit = 0
cIdRitMax = 1
cIdFreq = 3
cMaxRigo = 80
cSorte = 1
ReDim aRitPerRigo(cMaxRigo,12,3)
Ini = EstrazioneIni
Fin = EstrazioneFin
nDaFare = Fin -(Ini - 1)
For idEstr = Ini To Fin - 1
ReDim aNum(5)
Call GeneraAnaliticoTurbo(idEstr)
For nRuota = 1 To 12
If nRuota <> 11 Then
Call GetArrayNumeriRuota(idEstr + 1,nRuota,aNum)
ReDim aBNumEstrSucc(90)
For p = 1 To 5
aBNumEstrSucc(aNum(p)) = True
Next
For nRit = 0 To cMaxRigo
nSfald = 0
'bValida = False
For p = 1 To 5
n = TabelloneAnaliticoTurbo(nRit,nRuota,p)
'If n >0 Then bValida = True
If n > 0 Then
If aBNumEstrSucc(n) Then
nSfald = nSfald + 1
End If
End If
Next
'If bValida Then
If nSfald >= cSorte Then
If aRitPerRigo(nRit,nRuota,cIdRit) > aRitPerRigo(nRit,nRuota,cIdRitMax) Then
aRitPerRigo(nRit,nRuota,cIdRitMax) = aRitPerRigo(nRit,nRuota,cIdRit)
End If
aRitPerRigo(nRit,nRuota,cIdRit) = 0
aRitPerRigo(nRit,nRuota,cIdFreq) = aRitPerRigo(nRit,nRuota,cIdFreq) + 1
Else
aRitPerRigo(nRit,nRuota,cIdRit) = aRitPerRigo(nRit,nRuota,cIdRit) + 1
End If
'End If
If ScriptInterrotto Then Exit For
Next
End If
If ScriptInterrotto Then Exit For
Next
nFatte = nFatte + 1
Call AvanzamentoElab(1,nDaFare,nFatte)
If ScriptInterrotto Then Exit For
Next
ReDim aV(6)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ruota"
aV(6) = "NumPresRigoAttuale"
Call GeneraAnaliticoTurbo(idEstr)
Messaggio "Creazione tabella"
If MsgBox ("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?" , vbQuestion + vbYesNo ) = vbYes Then
bMostraSoloRigheConNimeri = True
End If
DoEventsEx
Call InitTabella(aV)
For nRuota = 1 To 12
If nRuota <> 11 Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,nRuota,cIdRit)
aV(3) = aRitPerRigo(k,nRuota,cIdRitMax)
aV(4) = aRitPerRigo(k,nRuota,cIdFreq)
aV(5) = NomeRuota(nRuota)
sNum = ""
For p = 1 To 5
n = TabelloneAnaliticoTurbo(k,nRuota,p)
sNum = Iif(n >0 , sNum & n & ".", sNum)
Next
sNum = RimuoviLastChr(sNum , ".")
bValida = False
If bMostraSoloRigheConNimeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
Call AddRigaTabella(aV)
End If
Next
End If
Next
Call CreaTabella(2)
End Sub
#10
skygirl
Grazie per l'aggiornamento, lo script funziona perfettamente,
Chiedo inoltre se nell' output è possibile aggiungere delle colonne - Pronostico - Esito - Colpi - Data
io metterei una colonna pronostico che mi indica nel rigo quale numero deve passare
ad es. rigo 77 TO nell'estraz. 9197 passerà il 71
Quando uscirà effettivamente il 71 non si sà..per cui nella colonna Esito lo script dovrebbe evidenziare quando ci sarà l'uscità del 71 e la colonna Data dovrebbe indicare la data in cui l'esito si realizza.
La colonna Colpi dovrebbe invece indicare dopo quanti colpi dal passaggio sul rigo interessato ci sarà l'esito con l'uscita del numero in oggetto
adesso una domanda probabilmente banale come faccio ad esportare l'output in un file excel?
 

micro__

Advanced Member >PLATINUM<
#11
LuigiB
ciao , qui c'è da capire un po' meglio.
Il fulcro del gioco non è il tale numero bensi il numero (o i numeri) contenuto/i nel tale rigo in quel dato momento.
Il pronostico è a colpo e la statistica è a colpo. I numeri da giocare sono gia mostrati e sono quelli
presenti nel tabellone analitico preso alla data del range "FINE".
Ad esempio prima dell'estrazione 28/7 (quella dell'esempio a inizio thread) avevamo a Genova il rigo 65 con ritardo di 1050 e il numero da giocare in quel momento era il numero 69
purtroppo il numero non è uscito , ora il 69 non c'entra piu niente inutile sapere quando uscira , quello che ci interessa è sapere quale nuovo numero dobbiamo giocare ora , il rigo 65 dal ritardo 1050 è passato certamente al ritardo 1051 , ma chi l'ha detto che a questa nuova estrazione di gioco al rigo 65 esiste un numero da giocare ? Questo dipende dall'evoluzione del tabellone , infatti come si vede non esiste al rigo 65 di genova un numero da giocare ...per giocare nuovamente il rigo 65 di genova bisognera aspettare che questo contenga nuovamente qualche numero..
Spero di essermi spiegato..
quindi Sky le tue richieste mi lasciano un po' perplesso ..
per mettere l'output in excel puoi fare un semplice copia incolla della tabellla.
posto un nuovo aggiornamento dello script
Option Explicit
Sub Main
Dim Ini,Fin,idEstr,nRit,nRuota,nDaFare,nFatte,p,n,k,nSfald,bValida,sNum,bMostraSoloRigheConNimeri
Dim cMaxRigo,cSorte
Dim cIdRit,cIdRitMax,cIdFreq
cIdRit = 0
cIdRitMax = 1
cIdFreq = 3
cMaxRigo = 80
cSorte = 1
ReDim abRuote(12)
Call ScegliRuote( Nothing , abRuote)
ReDim aRitPerRigo(cMaxRigo,12,3)
Ini = EstrazioneIni
Fin = EstrazioneFin
nDaFare = Fin -(Ini - 1)
For idEstr = Ini To Fin - 1
ReDim aNum(5)
Call GeneraAnaliticoTurbo(idEstr)
For nRuota = 1 To 12
If nRuota <> 11 And abRuote (nRuota) Then
Call GetArrayNumeriRuota(idEstr + 1,nRuota,aNum)
ReDim aBNumEstrSucc(90)
For p = 1 To 5
aBNumEstrSucc(aNum(p)) = True
Next
For nRit = 0 To cMaxRigo
nSfald = 0
'bValida = False
For p = 1 To 5
n = TabelloneAnaliticoTurbo(nRit,nRuota,p)
'If n >0 Then bValida = True
If n > 0 Then
If aBNumEstrSucc(n) Then
nSfald = nSfald + 1
End If
End If
Next
'If bValida Then
If nSfald >= cSorte Then
If aRitPerRigo(nRit,nRuota,cIdRit) > aRitPerRigo(nRit,nRuota,cIdRitMax) Then
aRitPerRigo(nRit,nRuota,cIdRitMax) = aRitPerRigo(nRit,nRuota,cIdRit)
End If
aRitPerRigo(nRit,nRuota,cIdRit) = 0
aRitPerRigo(nRit,nRuota,cIdFreq) = aRitPerRigo(nRit,nRuota,cIdFreq) + 1
Else
aRitPerRigo(nRit,nRuota,cIdRit) = aRitPerRigo(nRit,nRuota,cIdRit) + 1
End If
'End If
If ScriptInterrotto Then Exit For
Next
End If
If ScriptInterrotto Then Exit For
Next
nFatte = nFatte + 1
Call AvanzamentoElab(1,nDaFare,nFatte)
If ScriptInterrotto Then Exit For
Next
ReDim aV(7)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ruota"
aV(6) = "NumPresRigoAttuale"
aV(7) = "IndiceConv"
Call GeneraAnaliticoTurbo(idEstr)
Messaggio "Creazione tabella"
If MsgBox("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
bMostraSoloRigheConNimeri = True
End If
DoEventsEx
Call InitTabella(aV)
For nRuota = 1 To 12
If nRuota <> 11 And abRuote (nRuota) Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,nRuota,cIdRit)
aV(3) = aRitPerRigo(k,nRuota,cIdRitMax)
aV(4) = aRitPerRigo(k,nRuota,cIdFreq)
aV(5) = NomeRuota(nRuota)
sNum = ""
For p = 1 To 5
n = TabelloneAnaliticoTurbo(k,nRuota,p)
sNum = Iif(n > 0,sNum & n & ".",sNum)
Next
sNum = RimuoviLastChr(sNum,".")
bValida = False
If bMostraSoloRigheConNimeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
aV(7) = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(nFatte,aRitPerRigo(k,nRuota,cIdFreq))),3)
Call AddRigaTabella(aV)
End If
Next
End If
Next
Call Scrivi ("Inizio : " & GetInfoEstrazione (Ini) )
Call Scrivi ("Fine : " & GetInfoEstrazione (Fin) )
Call CreaTabella(2)
End Sub
 

micro__

Advanced Member >PLATINUM<
#12
skygirl
Ciao Luigi in effetti hai assolutamente ragione la mia richiesta non ha senso dal momento che l'oggetto è il rigo non il numero ma questo l'ho capito solo dopo che ho fatto le prove pratiche
#13
LuigiB
Ciao Sky , no problem .. al limite provo a fare delle modifiche che testano la strategia di gioco , ad esempio si potrebbe prendere
come discriminante per la giocate il valore dell'indice di convenienza ,. a inizio script si chiede a quale indice di convenienza minimo si deve fare la giocata , poi si chedono le estrazioni su cui testare la strategia (che non coincidono con qelle del range statistico) dopo di che lo script iniziera le sue analisi
sul range individuato per valutare la strategia , appena le condizioni lo consentono esegue la giocate e
memorizza il costo parziale e totale gestendo eventualmente la progressione per tutte le giocate successive in modo tale da vedere quanto capitale sarebbe servito per non andare in perdita .. non so ..proverei a fare qualcosa di simile ..
#18
LuigiB
Ciao Solare , grazie ...
ecco il nuovo script
Option Explicit
Dim cIdRit,cIdRitMax,cIdFreq
Sub Main
Select Case ScegliProcedura
Case 0
ScriviIstruzioni
Case 1
VisualizzaProgressione
Case 2
Call Analisi(True)
Case 3
Call Analisi(False)
End Select
End Sub
Sub Analisi(bEseguiAnalisi)
Dim Ini,Fin,idEstr,nRit,nRuota,nDaFare,nFatte,p,n,k,nSfald,bValida,sNum,bMostraSoloRigheConNimeri,sTmp
Dim cMaxRigo,cSorte
Dim nCapitaleImpegnato,nTotVincita,nIndiceConvMin,nPostaIniziale,nPercGuadagno,nPrimaEstrGioco,nColpiProgressione
Dim nNumInGioc,nRuotaInGioc,nRetIC,nIdProg,nGiocateTot,bSuperataProg,nMassimaEspos,nVincitaParz,nRetIdRigo,nRetRitRigo
ReDim aPoste(0)
ReDim aRetRigheProgr(0)
cIdRit = 0
cIdRitMax = 1
cIdFreq = 3
cMaxRigo = 80
cSorte = 1
nIdProg = 0
nGiocateTot = 0
bSuperataProg = False
Ini = EstrazioneIni
Fin = EstrazioneFin
nDaFare = Fin -(Ini - 1)
If bEseguiAnalisi Then
nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",90))
nIndiceConvMin = CInt(InputBox("Inserire un valore intero per l'indice di convenienza minimo al quale la giocata viene eseguita","IcMin",5))
nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))
nPrimaEstrGioco = CInt(InputBox("Inserire la prima estrazione dalla quale iniziare a giocare deve essere un numero compreso tra Inizio e fine Range","Prima estr giocabile",Fin - 100))
If VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPercGuadagno,nPostaIniziale,nIndiceConvMin,nColpiProgressione) = False Then Exit Sub
Call GetVettoreProgressione(1,1,1,nColpiProgressione,aPoste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniziale)
End If
ReDim abRuote(12)
If ScegliRuote(Nothing,abRuote ) <= 0 Then
MsgBox "Ruote non selezionate",vbCritical
Exit Sub
End If
ReDim aRitPerRigo(cMaxRigo,12,3)
For idEstr = Ini To Fin - 1
ReDim aNum(5)
Call GeneraAnaliticoTurbo(idEstr)
nFatte = nFatte + 1
' blocco analisi giocate ==============================
If bEseguiAnalisi Then
If idEstr >= nPrimaEstrGioco And bSuperataProg = False Then
If GetNumeroDaGiocare(aRitPerRigo,nFatte,nIndiceConvMin,nNumInGioc,nRuotaInGioc,nRetIC,nRetIdRigo,nRetRitRigo) Then
nIdProg = nIdProg + 1
If nIdProg <= nColpiProgressione Then
nGiocateTot = nGiocateTot + 1
sTmp = FormatSpace(nGiocateTot,5) & " - "
sTmp = sTmp & GetInfoEstrazione(idEstr ) & " Num : " & Format2(nNumInGioc) & " "
sTmp = sTmp & SiglaRuota(nRuotaInGioc)
sTmp = sTmp & " I.C. : " & FormatSpace (nRetIC ,5 , True)
sTmp = sTmp & " Rigo : " & FormatSpace (nRetIdRigo,5 , True)
sTmp = sTmp & " Ritardo : " & FormatSpace (nRetRitRigo ,5 , True)
sTmp = sTmp & " Costo : " & aPoste(nIdProg)
Call Scrivi(sTmp)
nCapitaleImpegnato = GetCapitaleImpegnato(nIdProg,aRetRigheProgr)
If nCapitaleImpegnato > nMassimaEspos Then nMassimaEspos = nCapitaleImpegnato
If VerificaGiocata(idEstr + 1,nNumInGioc,nRuotaInGioc) Then
nVincitaParz = GetVincitaNetta(nIdProg,aRetRigheProgr)
nTotVincita = nTotVincita + nVincitaParz
sTmp = "VINCENTE ! Vinti : " & nVincitaParz
sTmp = sTmp & " Max Esposizione : " & nMassimaEspos
sTmp = sTmp & " Esposizione corrente : " & nCapitaleImpegnato
sTmp = sTmp & " TotVincita : " & nTotVincita
Call Scrivi(sTmp,True,,vbYellow,vbRed)
nIdProg = 0
End If
Else
Scrivi "Superati i limiti della progressione impostata. Termine analisi"
bSuperataProg = True
End If
End If
End If
End If
'======================================================
For nRuota = 1 To 12
If nRuota <> 11 And abRuote(nRuota) Then
Call GetArrayNumeriRuota(idEstr + 1,nRuota,aNum)
ReDim aBNumEstrSucc(90)
For p = 1 To 5
aBNumEstrSucc(aNum(p)) = True
Next
For nRit = 0 To cMaxRigo
nSfald = 0
'bValida = False
For p = 1 To 5
n = TabelloneAnaliticoTurbo(nRit,nRuota,p)
'If n >0 Then bValida = True
If n > 0 Then
If aBNumEstrSucc(n) Then
nSfald = nSfald + 1
End If
End If
Next
'If bValida Then
If nSfald >= cSorte Then
If aRitPerRigo(nRit,nRuota,cIdRit) > aRitPerRigo(nRit,nRuota,cIdRitMax) Then
aRitPerRigo(nRit,nRuota,cIdRitMax) = aRitPerRigo(nRit,nRuota,cIdRit)
End If
aRitPerRigo(nRit,nRuota,cIdRit) = 0
aRitPerRigo(nRit,nRuota,cIdFreq) = aRitPerRigo(nRit,nRuota,cIdFreq) + 1
Else
aRitPerRigo(nRit,nRuota,cIdRit) = aRitPerRigo(nRit,nRuota,cIdRit) + 1
End If
'End If
If ScriptInterrotto Then Exit For
Next
End If
If ScriptInterrotto Then Exit For
Next
Call AvanzamentoElab(1,nDaFare,nFatte)
If ScriptInterrotto Then Exit For
Next
If bEseguiAnalisi Then
Call Scrivi
Call Scrivi("Giocate eseguite : " & nGiocateTot)
Call Scrivi("Massima esposizione : " & nMassimaEspos)
Call Scrivi("Vincita netta : " & nTotVincita)
Call Scrivi
End If
ReDim aV(7)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ruota"
aV(6) = "NumPresRigoAttuale"
aV(7) = "IndiceConv"
Call GeneraAnaliticoTurbo(Fin )
Messaggio "Creazione tabella"
If MsgBox("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
bMostraSoloRigheConNimeri = True
End If
DoEventsEx
Call InitTabella(aV)
For nRuota = 1 To 12
If nRuota <> 11 And abRuote(nRuota) Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,nRuota,cIdRit)
aV(3) = aRitPerRigo(k,nRuota,cIdRitMax)
aV(4) = aRitPerRigo(k,nRuota,cIdFreq)
aV(5) = NomeRuota(nRuota)
sNum = ""
For p = 1 To 5
n = TabelloneAnaliticoTurbo(k,nRuota,p)
sNum = Iif(n > 0,sNum & n & ".",sNum)
Next
sNum = RimuoviLastChr(sNum,".")
bValida = False
If bMostraSoloRigheConNimeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
aV(7) = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(nFatte,aRitPerRigo(k,nRuota,cIdFreq))),3)
Call AddRigaTabella(aV)
End If
Next
End If
Next
Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
Call Scrivi("Fine : " & GetInfoEstrazione(Fin))
Call CreaTabella(2)
End Sub
Function GetCapitaleImpegnato(nIdProg,aRigheProgr)
ReDim aV(0)
Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
GetCapitaleImpegnato = CDbl(Trim(aV(4)))
End Function
Function GetVincitaNetta(nIdProg,aRigheProgr)
ReDim aV(0)
Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
GetVincitaNetta = CDbl(Trim(aV(7)))
End Function
Function VerificaGiocata(idEstr,nNumGiocato,nRuota)
Dim k
ReDim aNum(0)
Dim bRet
bRet = False
Call GetArrayNumeriRuota(idEstr,nRuota,aNum)
For k = 1 To 5
If aNum(k) = nNumGiocato Then
bRet = True
Exit For
End If
Next
VerificaGiocata = bRet
End Function
Function GetNumeroDaGiocare(aRitPerRigo,nFatte,nIndiceConvMin,nRetNumInGioc,nRetRuotaInGioc,nRetIC,nRetIdRigo,nRetRitRigo)
Dim k,p,nQ,n,nIc,nRuota,nIndiceConvTrov, nNumDaGioc
nIndiceConvTrov = nIndiceConvMin
nRetNumInGioc = 0
nRetRuotaInGioc = 0
nRetIC = 0
nRetIdRigo = 0
nRetRitRigo = 0
For k = LBound(aRitPerRigo) To UBound(aRitPerRigo)
For nRuota = 1 To 12
If nRuota <> 11 Then
nIc = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(nFatte,aRitPerRigo(k,nRuota,cIdFreq))),3)
If nIc >= nIndiceConvTrov Then
nQ = 0
nNumDaGioc =0
For p = 1 To 5
n = TabelloneAnaliticoTurbo(k,nRuota,p)
If n > 0 Then
nNumDaGioc = n
nQ = nQ + 1
If nQ > 1 Then Exit For
End If
Next
If nQ = 1 Then
nRetNumInGioc = nNumDaGioc
nRetRuotaInGioc = nRuota
nIndiceConvTrov = nIc
nRetIC = nIndiceConvTrov
nRetIdRigo = k
nRetRitRigo = aRitPerRigo(k,nRuota,cIdRit)
End If
End If
End If
Next
Next
GetNumeroDaGiocare = nRetNumInGioc > 0
End Function
Function ScegliProcedura()
Dim aVoci
aVoci = Array("Istruzioni","Visualizza progressione","Analisi + statistica","Solo statistica")
ScegliProcedura = ScegliOpzioneMenu(aVoci,0)
End Function
Sub ScriviIstruzioni
Dim sTesto
sTesto = "Lo script analizza i ritardi di rigo del tabellone analitico all'interno del range impostato" & vbCrLf
sTesto = sTesto & "nel programma." & vbCrLf
sTesto = sTesto & "Possono essere analizzate tutte le ruote ma non si puo scegliere la ruota TUTTE" & vbCrLf
sTesto = sTesto & "Un rigo del tabellone analitico si sfalda se all'estrazione successiva sulla stessa ruota esce" & vbCrLf
sTesto = sTesto & "uno dei numeri in esso contenuti" & vbCrLf
Call Scrivi(sTesto)
sTesto = "Al termine dell'analisi verra mostrata una tabella con la situazione attuale ovvero quella che" & vbCrLf
sTesto = sTesto & "si configura nel momento dell'estrazione identificata come fine range analizzato." & vbCrLf
Call Scrivi(sTesto)
sTesto = "E' anche possibile analizzare la strategia di gioco indicando da quale estrazione all'interno del" & vbCrLf
sTesto = sTesto & "range analizzato iniziare a giocare." & vbCrLf
sTesto = sTesto & "A tale scopo bisogna fornire i parametri per il calcolo della progressione da applicare." & vbCrLf
sTesto = sTesto & "Indicando un valore minimo per l' INDICE DI CONVENIENZA lo script giochera il numero" & vbCrLf
sTesto = sTesto & "presente nel rigo con l'indice di convenienza piu alto maggiore o uguale al minimo previsto." & vbCrLf
sTesto = sTesto & "N.B verranno considerati e giocate solo le righe del Tab analitico nel cui spazio si trovi un solo numero." & vbCrLf
sTesto = sTesto & "Ovvero verra giocato il rigo con indice di convenienza piu alto in cui sia presente un solo numero." & vbCrLf
sTesto = sTesto & "Se durante l'analisi delle giocate si superano i colpi previsti dalla progressione il gioco sarà interrotto con perdita." & vbCrLf
sTesto = sTesto & "e verrà interrotta l'analisi sulle giocate mentre la statistica continuera fino alla fine." & vbCrLf
Call Scrivi(sTesto)
sTesto = "Per cercare di non andare in perdita è opportuno impostare un congruo numero di colpi per la progressione" & vbCrLf
sTesto = sTesto & "da usare. Questo prevede di avere a disposizione un discreto capitale da investire per ricavare somme" & vbCrLf
sTesto = sTesto & "modeste per non dire irrisorie in confronto al capitale esposto al rischio." & vbCrLf
Call Scrivi(sTesto,True,,,vbRed)
End Sub
Sub VisualizzaProgressione
Dim nPostaIniziale,nPercGuadagno,nColpiProgressione,k
ReDim aPoste(0)
ReDim aRetRigheProgr(0)
nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",5))
nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))
If nColpiProgressione > 0 And nPostaIniziale > 0 And nPercGuadagno > 0 Then
Call GetVettoreProgressione(1,1,1,nColpiProgressione,aPoste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniziale)
For k = 0 To UBound(aRetRigheProgr)
Call Scrivi(aRetRigheProgr(k))
Next
Else
MsgBox "Parametri non validi",vbCritical
End If
End Sub
Function VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPercGuadagno,nPostaIniziale,nIndiceConvMin,nColpiProgressione)
Dim sMsg
sMsg = ""
If nPrimaEstrGioco < Ini Or nPrimaEstrGioco > Fin Then
sMsg = "Prima estrazione di gioco non valida"
End If
If nPercGuadagno <= 0 Or nPercGuadagno > 100 Then
sMsg = "Percentuale di guadagno sul capitale impiegato non valida"
End If
If nPostaIniziale <= 0 Then
sMsg = "Posta iniziale non valida"
End If
If nIndiceConvMin <= 0 Then
sMsg = "Indice convenienza minimo non valido"
End If
If nColpiProgressione <= 0 Then
sMsg = "Impostare il numero di colpi per la progressione"
End If
If sMsg <> "" Then
MsgBox sMsg,vbCritical
Else
VerificaParametriGioco = True
End If
End Function
 

micro__

Advanced Member >PLATINUM<
#12
skygirl
Ciao Luigi in effetti hai assolutamente ragione la mia richiesta non ha senso dal momento che l'oggetto è il rigo non il numero ma questo l'ho capito solo dopo che ho fatto le prove pratiche
#13
LuigiB
Ciao Sky , no problem .. al limite provo a fare delle modifiche che testano la strategia di gioco , ad esempio si potrebbe prendere
come discriminante per la giocate il valore dell'indice di convenienza ,. a inizio script si chiede a quale indice di convenienza minimo si deve fare la giocata , poi si chedono le estrazioni su cui testare la strategia (che non coincidono con qelle del range statistico) dopo di che lo script iniziera le sue analisi
sul range individuato per valutare la strategia , appena le condizioni lo consentono esegue la giocate e
memorizza il costo parziale e totale gestendo eventualmente la progressione per tutte le giocate successive in modo tale da vedere quanto capitale sarebbe servito per non andare in perdita .. non so ..proverei a fare qualcosa di simile ..
#18
LuigiB
Ciao Solare , grazie ...
ecco il nuovo script
Option Explicit
Dim cIdRit,cIdRitMax,cIdFreq
Sub Main
Select Case ScegliProcedura
Case 0
ScriviIstruzioni
Case 1
VisualizzaProgressione
Case 2
Call Analisi(True)
Case 3
Call Analisi(False)
End Select
End Sub
Sub Analisi(bEseguiAnalisi)
Dim Ini,Fin,idEstr,nRit,nRuota,nDaFare,nFatte,p,n,k,nSfald,bValida,sNum,bMostraSoloRigheConNimeri,sTmp
Dim cMaxRigo,cSorte
Dim nCapitaleImpegnato,nTotVincita,nIndiceConvMin,nPostaIniziale,nPercGuadagno,nPrimaEstrGioco,nColpiProgressione
Dim nNumInGioc,nRuotaInGioc,nRetIC,nIdProg,nGiocateTot,bSuperataProg,nMassimaEspos,nVincitaParz,nRetIdRigo,nRetRitRigo
ReDim aPoste(0)
ReDim aRetRigheProgr(0)
cIdRit = 0
cIdRitMax = 1
cIdFreq = 3
cMaxRigo = 80
cSorte = 1
nIdProg = 0
nGiocateTot = 0
bSuperataProg = False
Ini = EstrazioneIni
Fin = EstrazioneFin
nDaFare = Fin -(Ini - 1)
If bEseguiAnalisi Then
nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",90))
nIndiceConvMin = CInt(InputBox("Inserire un valore intero per l'indice di convenienza minimo al quale la giocata viene eseguita","IcMin",5))
nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))
nPrimaEstrGioco = CInt(InputBox("Inserire la prima estrazione dalla quale iniziare a giocare deve essere un numero compreso tra Inizio e fine Range","Prima estr giocabile",Fin - 100))
If VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPercGuadagno,nPostaIniziale,nIndiceConvMin,nColpiProgressione) = False Then Exit Sub
Call GetVettoreProgressione(1,1,1,nColpiProgressione,aPoste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniziale)
End If
ReDim abRuote(12)
If ScegliRuote(Nothing,abRuote ) <= 0 Then
MsgBox "Ruote non selezionate",vbCritical
Exit Sub
End If
ReDim aRitPerRigo(cMaxRigo,12,3)
For idEstr = Ini To Fin - 1
ReDim aNum(5)
Call GeneraAnaliticoTurbo(idEstr)
nFatte = nFatte + 1
' blocco analisi giocate ==============================
If bEseguiAnalisi Then
If idEstr >= nPrimaEstrGioco And bSuperataProg = False Then
If GetNumeroDaGiocare(aRitPerRigo,nFatte,nIndiceConvMin,nNumInGioc,nRuotaInGioc,nRetIC,nRetIdRigo,nRetRitRigo) Then
nIdProg = nIdProg + 1
If nIdProg <= nColpiProgressione Then
nGiocateTot = nGiocateTot + 1
sTmp = FormatSpace(nGiocateTot,5) & " - "
sTmp = sTmp & GetInfoEstrazione(idEstr ) & " Num : " & Format2(nNumInGioc) & " "
sTmp = sTmp & SiglaRuota(nRuotaInGioc)
sTmp = sTmp & " I.C. : " & FormatSpace (nRetIC ,5 , True)
sTmp = sTmp & " Rigo : " & FormatSpace (nRetIdRigo,5 , True)
sTmp = sTmp & " Ritardo : " & FormatSpace (nRetRitRigo ,5 , True)
sTmp = sTmp & " Costo : " & aPoste(nIdProg)
Call Scrivi(sTmp)
nCapitaleImpegnato = GetCapitaleImpegnato(nIdProg,aRetRigheProgr)
If nCapitaleImpegnato > nMassimaEspos Then nMassimaEspos = nCapitaleImpegnato
If VerificaGiocata(idEstr + 1,nNumInGioc,nRuotaInGioc) Then
nVincitaParz = GetVincitaNetta(nIdProg,aRetRigheProgr)
nTotVincita = nTotVincita + nVincitaParz
sTmp = "VINCENTE ! Vinti : " & nVincitaParz
sTmp = sTmp & " Max Esposizione : " & nMassimaEspos
sTmp = sTmp & " Esposizione corrente : " & nCapitaleImpegnato
sTmp = sTmp & " TotVincita : " & nTotVincita
Call Scrivi(sTmp,True,,vbYellow,vbRed)
nIdProg = 0
End If
Else
Scrivi "Superati i limiti della progressione impostata. Termine analisi"
bSuperataProg = True
End If
End If
End If
End If
'======================================================
For nRuota = 1 To 12
If nRuota <> 11 And abRuote(nRuota) Then
Call GetArrayNumeriRuota(idEstr + 1,nRuota,aNum)
ReDim aBNumEstrSucc(90)
For p = 1 To 5
aBNumEstrSucc(aNum(p)) = True
Next
For nRit = 0 To cMaxRigo
nSfald = 0
'bValida = False
For p = 1 To 5
n = TabelloneAnaliticoTurbo(nRit,nRuota,p)
'If n >0 Then bValida = True
If n > 0 Then
If aBNumEstrSucc(n) Then
nSfald = nSfald + 1
End If
End If
Next
'If bValida Then
If nSfald >= cSorte Then
If aRitPerRigo(nRit,nRuota,cIdRit) > aRitPerRigo(nRit,nRuota,cIdRitMax) Then
aRitPerRigo(nRit,nRuota,cIdRitMax) = aRitPerRigo(nRit,nRuota,cIdRit)
End If
aRitPerRigo(nRit,nRuota,cIdRit) = 0
aRitPerRigo(nRit,nRuota,cIdFreq) = aRitPerRigo(nRit,nRuota,cIdFreq) + 1
Else
aRitPerRigo(nRit,nRuota,cIdRit) = aRitPerRigo(nRit,nRuota,cIdRit) + 1
End If
'End If
If ScriptInterrotto Then Exit For
Next
End If
If ScriptInterrotto Then Exit For
Next
Call AvanzamentoElab(1,nDaFare,nFatte)
If ScriptInterrotto Then Exit For
Next
If bEseguiAnalisi Then
Call Scrivi
Call Scrivi("Giocate eseguite : " & nGiocateTot)
Call Scrivi("Massima esposizione : " & nMassimaEspos)
Call Scrivi("Vincita netta : " & nTotVincita)
Call Scrivi
End If
ReDim aV(7)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ruota"
aV(6) = "NumPresRigoAttuale"
aV(7) = "IndiceConv"
Call GeneraAnaliticoTurbo(Fin )
Messaggio "Creazione tabella"
If MsgBox("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
bMostraSoloRigheConNimeri = True
End If
DoEventsEx
Call InitTabella(aV)
For nRuota = 1 To 12
If nRuota <> 11 And abRuote(nRuota) Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,nRuota,cIdRit)
aV(3) = aRitPerRigo(k,nRuota,cIdRitMax)
aV(4) = aRitPerRigo(k,nRuota,cIdFreq)
aV(5) = NomeRuota(nRuota)
sNum = ""
For p = 1 To 5
n = TabelloneAnaliticoTurbo(k,nRuota,p)
sNum = Iif(n > 0,sNum & n & ".",sNum)
Next
sNum = RimuoviLastChr(sNum,".")
bValida = False
If bMostraSoloRigheConNimeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
aV(7) = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(nFatte,aRitPerRigo(k,nRuota,cIdFreq))),3)
Call AddRigaTabella(aV)
End If
Next
End If
Next
Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
Call Scrivi("Fine : " & GetInfoEstrazione(Fin))
Call CreaTabella(2)
End Sub
Function GetCapitaleImpegnato(nIdProg,aRigheProgr)
ReDim aV(0)
Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
GetCapitaleImpegnato = CDbl(Trim(aV(4)))
End Function
Function GetVincitaNetta(nIdProg,aRigheProgr)
ReDim aV(0)
Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
GetVincitaNetta = CDbl(Trim(aV(7)))
End Function
Function VerificaGiocata(idEstr,nNumGiocato,nRuota)
Dim k
ReDim aNum(0)
Dim bRet
bRet = False
Call GetArrayNumeriRuota(idEstr,nRuota,aNum)
For k = 1 To 5
If aNum(k) = nNumGiocato Then
bRet = True
Exit For
End If
Next
VerificaGiocata = bRet
End Function
Function GetNumeroDaGiocare(aRitPerRigo,nFatte,nIndiceConvMin,nRetNumInGioc,nRetRuotaInGioc,nRetIC,nRetIdRigo,nRetRitRigo)
Dim k,p,nQ,n,nIc,nRuota,nIndiceConvTrov, nNumDaGioc
nIndiceConvTrov = nIndiceConvMin
nRetNumInGioc = 0
nRetRuotaInGioc = 0
nRetIC = 0
nRetIdRigo = 0
nRetRitRigo = 0
For k = LBound(aRitPerRigo) To UBound(aRitPerRigo)
For nRuota = 1 To 12
If nRuota <> 11 Then
nIc = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(nFatte,aRitPerRigo(k,nRuota,cIdFreq))),3)
If nIc >= nIndiceConvTrov Then
nQ = 0
nNumDaGioc =0
For p = 1 To 5
n = TabelloneAnaliticoTurbo(k,nRuota,p)
If n > 0 Then
nNumDaGioc = n
nQ = nQ + 1
If nQ > 1 Then Exit For
End If
Next
If nQ = 1 Then
nRetNumInGioc = nNumDaGioc
nRetRuotaInGioc = nRuota
nIndiceConvTrov = nIc
nRetIC = nIndiceConvTrov
nRetIdRigo = k
nRetRitRigo = aRitPerRigo(k,nRuota,cIdRit)
End If
End If
End If
Next
Next
GetNumeroDaGiocare = nRetNumInGioc > 0
End Function
Function ScegliProcedura()
Dim aVoci
aVoci = Array("Istruzioni","Visualizza progressione","Analisi + statistica","Solo statistica")
ScegliProcedura = ScegliOpzioneMenu(aVoci,0)
End Function
Sub ScriviIstruzioni
Dim sTesto
sTesto = "Lo script analizza i ritardi di rigo del tabellone analitico all'interno del range impostato" & vbCrLf
sTesto = sTesto & "nel programma." & vbCrLf
sTesto = sTesto & "Possono essere analizzate tutte le ruote ma non si puo scegliere la ruota TUTTE" & vbCrLf
sTesto = sTesto & "Un rigo del tabellone analitico si sfalda se all'estrazione successiva sulla stessa ruota esce" & vbCrLf
sTesto = sTesto & "uno dei numeri in esso contenuti" & vbCrLf
Call Scrivi(sTesto)
sTesto = "Al termine dell'analisi verra mostrata una tabella con la situazione attuale ovvero quella che" & vbCrLf
sTesto = sTesto & "si configura nel momento dell'estrazione identificata come fine range analizzato." & vbCrLf
Call Scrivi(sTesto)
sTesto = "E' anche possibile analizzare la strategia di gioco indicando da quale estrazione all'interno del" & vbCrLf
sTesto = sTesto & "range analizzato iniziare a giocare." & vbCrLf
sTesto = sTesto & "A tale scopo bisogna fornire i parametri per il calcolo della progressione da applicare." & vbCrLf
sTesto = sTesto & "Indicando un valore minimo per l' INDICE DI CONVENIENZA lo script giochera il numero" & vbCrLf
sTesto = sTesto & "presente nel rigo con l'indice di convenienza piu alto maggiore o uguale al minimo previsto." & vbCrLf
sTesto = sTesto & "N.B verranno considerati e giocate solo le righe del Tab analitico nel cui spazio si trovi un solo numero." & vbCrLf
sTesto = sTesto & "Ovvero verra giocato il rigo con indice di convenienza piu alto in cui sia presente un solo numero." & vbCrLf
sTesto = sTesto & "Se durante l'analisi delle giocate si superano i colpi previsti dalla progressione il gioco sarà interrotto con perdita." & vbCrLf
sTesto = sTesto & "e verrà interrotta l'analisi sulle giocate mentre la statistica continuera fino alla fine." & vbCrLf
Call Scrivi(sTesto)
sTesto = "Per cercare di non andare in perdita è opportuno impostare un congruo numero di colpi per la progressione" & vbCrLf
sTesto = sTesto & "da usare. Questo prevede di avere a disposizione un discreto capitale da investire per ricavare somme" & vbCrLf
sTesto = sTesto & "modeste per non dire irrisorie in confronto al capitale esposto al rischio." & vbCrLf
Call Scrivi(sTesto,True,,,vbRed)
End Sub
Sub VisualizzaProgressione
Dim nPostaIniziale,nPercGuadagno,nColpiProgressione,k
ReDim aPoste(0)
ReDim aRetRigheProgr(0)
nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",5))
nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))
If nColpiProgressione > 0 And nPostaIniziale > 0 And nPercGuadagno > 0 Then
Call GetVettoreProgressione(1,1,1,nColpiProgressione,aPoste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniziale)
For k = 0 To UBound(aRetRigheProgr)
Call Scrivi(aRetRigheProgr(k))
Next
Else
MsgBox "Parametri non validi",vbCritical
End If
End Sub
Function VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPercGuadagno,nPostaIniziale,nIndiceConvMin,nColpiProgressione)
Dim sMsg
sMsg = ""
If nPrimaEstrGioco < Ini Or nPrimaEstrGioco > Fin Then
sMsg = "Prima estrazione di gioco non valida"
End If
If nPercGuadagno <= 0 Or nPercGuadagno > 100 Then
sMsg = "Percentuale di guadagno sul capitale impiegato non valida"
End If
If nPostaIniziale <= 0 Then
sMsg = "Posta iniziale non valida"
End If
If nIndiceConvMin <= 0 Then
sMsg = "Indice convenienza minimo non valido"
End If
If nColpiProgressione <= 0 Then
sMsg = "Impostare il numero di colpi per la progressione"
End If
If sMsg <> "" Then
MsgBox sMsg,vbCritical
Else
VerificaParametriGioco = True
End If
End Function
 

micro__

Advanced Member >PLATINUM<
#21
skygirl
LuigiB bellissimo script grazie, mi piace moltissimo l'opzione che ha inserito nel menù a tendina relativamente alle istruzioni, è un'ottima cosa che tutti gli script dovrebbero avere, uno script chiaro è uno strumento di analisi perfetto
un saluto
#23
Joe91
Ciao Luigi.
Buon giorno a tutte//i.
Mi permetto di dissentire ... in parte.
Il tuo script ha innegabili pregi ed è meritevole dei complimenti ricevuti,
tuttavia alcuni problemini li ha o li presenta.
E' lento.
Incompleto ... per evitare di esssere, ancora più lento.
In pratica, interrompe il conteggio ad 80, per evitare di consumare ulteriori risorse.
Mentre ... i ritardi di rigo crescono in maniera quasi esponenziale ... fino al massimo possibile.
Questo succede, per la mancanza di occasioni, in cui avere anche solo "una" possibilità di cadere.
Un esempio:
Se il ritardo normalmente non raggiunge le 210 estrazioni,
è molto improbabile che, un numero, cada nel rigo 210.
Dunque ... il ritardo del rigo 210 ... cresce all'infinito.
Ne consegue che il resoconto del tuo script pur essendo ordinato in seconda colonna,
nella prima (colonna) elenca quasi ... in ordine inverso,
i ritardi di rigo come se fossero altrettante possibilità di gioco.
Ovvero li trasforma in opportunità di gioco.
Il miglior caso ad 80 / il secondo a 79 / il terzo a 78 ... ecc.
Quasi-quasi eliminando (riducendo) l'alea.
Dove questo 80/79/78/77... ecc. perde la capacità d'essere, dato statistico,
diventa risultato di scelte "piuttosto dirette" di chi ha redatto lo script.
Ovvero del limite "80".
La proposta attuale ... riferirebbe, preferibile, il caso in cui
il Ritardo di Rigo sarebbe di 530 Estrazioni con 17 presenze.
In sintesi questo ipotetico "miglior numero" uscirebbe 17 volte in 5249 estrazioni.
Così stando le cose, sembrerebbe che, si sia caduti, noi, nel costruendo "trappolone".
Chiedo naturalmente venia ... sapendo che tu capisci, lo spirito, con cui ho scritto,
terminando questa critica (quasi pura). Anche se ho già elencato in parte delle soluzioni,
secondo me utili a migliorare il risultato già raggiunto,
occorrerebbe ... che NON ci fosse un "indice di convenienza"
inteso come "rapporto lineare puro" perchè
NON c'è proporzione e linearità "nelle possibiità reali".
Piuttosto invece, penso, potrebbe essere utile che esso considerasse anche il livello
(ovvero) le differenti di "occasioni di caduta"
che diminuiscono drasticamente con l'aumentare del ritardo di rigo.
Ora "capisco" che taluni possano giustamente pensare/asserire:
ma allora perchè invece di "criticare" non agisci. Questo è Giusto!
Ma questo è anche-anche un pochino complicato.
Dunque ... dico subito: Io individuerei come caso esemplare ed esplicativo
Il ritardo di rigo 15 ... (con 36 Estrazioni di Ritardo di Rigo all'estrazione dell' 11/08/2016)
e 562 cadute nei 5249 concorsi avvenuti per la ruota di FIRENZE.
Come è scritto, per un colpo, poi eventualmente, il Rigo rimane, la Ruota anche,
... degli Estratti che di tanto in tanto, vi transitano, qualcuno cadrà.
Ora ... questa possibilità è concessa al 27.
Vedrò in seguito di motivare meglio, questa mia scelta ed indicazione, confidando
venga confermata sia dal calcolo elettronico ... che, per chi di turno... dal responso.
Cordiali saluti.
#24
LuigiB
Ciao Joe , ci mancherebbe che io non accetti le critiche ...
E' un po' lento ciò dipende dal fatto che per ogni estrazione deve ricalcolare i l tab analitico e questo lo fa attraverso la funzione preposta ,come sai si tratta di un 'operazione abbastanza pesante ,ineffetti si potrebbe evitare facendo in modo che lo script si calcoli da solo il suo tabellone analitico cosi che ad ogni nuova estrazione analizzata lo possa aggiornare e non ricalcolare (la cosa che mi fa dubbi è che il tutto poi sarebbe comunque in vbscript quindi lento per definizione tuttavia la minor quantita di operazioni dovrebbe dare lo stesso piu velocita volendo si potrebbe poi compilare lo script per guadagnare ancora) .
Questo naturalmente richiede un maggiore sforzo di scrittura codice nello script per fargli fare da solo cio che attualmente fa la funzione GeneraAnalitico.
Il fatto che gestisca solo 80 righe si puo cambiare molto facilmente nel codice ci sono una serie di preimpostazione di valori proprio a inizio script, è chiaro che mettendolo a 200 diventa molto molto lento per i motivi suddetti , io l'ho messo ad 80 anche per via del discorso che fai tu , da certe righe in su i ritardi sono matematici ..raramente quelle righe contengono numeri e se non li contengono di certo non si possono sfaldare dando luogo a ritardi che si incrementano ad ogni colpo.. avrai notato che nel codice questa cosa sebbene remmata io l'avevo gestita .. in pratica non conteggiavo i ritardi dele righe vuote poi l'ho remmata perche cosi facendo non venivano i risultati mostrati con l'esempio di Genova a ritardo 1050 col rigo 65 .. certo secondo me era molto piu logico e giusto contare solo i ritardi delle righe che in quel momento potevano sfaldarsi perche contenenti numeri , e ti dirò visto il tipo di gioco di estratto secco bisognava anche gestire i ritardi
per le righe con un numero , con due numeri , con tre e fino a 5 .. in pratica ogni riga poteva avere 5 ritardi differenti a noi interessava il ritardo relativo alla presenza di un solo numero per supportare il gioco con una statistica piu precisa.
Nell'analisi delle giocate , per individuare il numero da giocare attualmente viene scelto il rigo contenete nello spazio ruota un solo numero , tale rigo è quello con l'indice di convenienza piu alto, un suo senso dalle prove empiriche pare averlo , usando la progressione ho visto che non si va mai in perdita certo non vale la pena di stare 2/3 mesi per vincere 30 euro ... ahahah ..
ma questo era ovvio ancora prima di fare lo script poco ma sicuro ..
Ciao
 

micro__

Advanced Member >PLATINUM<
#25
Joe91
No Title
Ciao Luigi ...
Vedo che avevi capito benissimo ... il senso di quell' 80 che ho virgolettato.
Pertanto è tutto giusto quanto scrivi.
Dunque tralasciamo "la questione tempo" ... che si risolve come dici anche e solo a livello di script.
(Come vedi elaboro fino a 250 di RDR ((tre volte tanto 80) / in metà della metà del tempo))
Un problema ... di razionalità e difficoltà nella gestione del rendiconto ...
è quello che elenchi nell'ultima parte del tuo messaggio.
Ma "qui": "ratio" e "rendiconto" paiono aspetti marginali rispetto al "trovare" qualcosa da giocare.
Tralascierei anche questo, e se sei daccordo,
riporterei "alla centralità" della trattazione il "ritardo di rigo".
#26
Joe91
Allego dunque
l'immagine di un confronto tra le 2 differnti soluzioni adottate.
Sostanzialmente si "autoconfermano" vicendevolmente
In tutto tranne per il conteggio delle "Presenze".
Occorre capirne la causa ANCHE con il confronto ottenibile da altri eventuali algoritmi.
Anche se Luigi ha già ipotizzato le ragioni di un possibile "perchè".
Faccio notare che ho escluso la Nazionale ... ma sono elencate,
verticalmente solo 9 RUOTE ... perchè come ha scritto Luigi
Venezia attualmente non offre "possibilità di gioco".
photo13446-jpg.1996570 (469×706) (lottoced.com)
#27
LuigiB
allora Joe visto che la nostra è una fucina di idee per il lotto intanto ecco qui uno script che dimostra come agire sull'aspetto velocità creando il tab analitico in modo dinamico.
Dalle mie prove risulta essere quasi 4 volte piu veloce ..
il prossimo step è inserirlo nello script di analisi , per ora lo mostro separato per far capire meglio a tutti ... cioè a tuti quelli che sono interessati all'aspetto codice ..
a me sembra funzionare.. se adotti la tu perizia per confermarmelo Joe mi faresti felice
Option Explicit
Dim aEstrTA
Sub Main
' questo esempio dimostra la creazioen del tabellone analitico in modo dinamico aggiornandolo
' ad ogni estrazione e non ricalcolandolo daccapo come avverrebeb se usassimo la funzione genera analitico
Dim Ini,Fin,k
Dim TipoAlgoritmo ' 0 = interno ,1 usa la funzione preposta GeneraAnaliticoTurbo
Dim nTimerStart
nTimerStart = Timer
Ini = EstrazioneIni
Fin = EstrazioneFin
TipoAlgoritmo = ScegliAlgoritmo
If TipoAlgoritmo = 0 Then
InitTabAnalitico Ini,Fin
For k = Ini To Fin
Call AggiornaTabAna(k)
Call AvanzamentoElab(Ini,Fin,k)
Next
Else
For k = Ini To Fin
Call GeneraAnaliticoTurbo(k)
Call AvanzamentoElab(Ini,Fin,k)
Next
InitTabAnalitico Fin,Fin
End If
Scrivi "Secondi : " & Timer - nTimerStart
Scrivi
OutputTabAnalitico(Fin)
End Sub
Function ScegliAlgoritmo
Dim aV
aV = Array ("Getito dallo script" ,"Funzione GeneraAnaliticoTurbo")
ScegliAlgoritmo = ScegliOpzioneMenu ( aV , 0)
End Function
Sub AggiornaTabAna(idEstr)
Dim k,r,e,i
Dim aNum,aBNum,nElim,nLimite
nLimite = idEstr - 230
For r = 1 To 12
If r <> 11 Then
Call GetArrayNumeriRuota(idEstr,r,aNum)
If aNum(1) > 0 Then
aBNum = ArrayNumeriToBool(aNum)
nElim = 0
' k = idEstr To idEstr -230 Step -1
k = idEstr
For e = 1 To 5
aEstrTA(k,r,e) = aNum(e)
Next
Do While nElim < 5 And k >= nLimite
k = k - 1
For e = 1 To 5
If aBNum(aEstrTA(k,r,e)) Then
aEstrTA(k,r,e) = 0
nElim = nElim + 1
'If nElim = 5 Then Exit For
End If
Next
Loop
End If
'Next
End If
Next
End Sub
Sub OutputTabAnalitico(idEstr)
Dim k,r,e,i
Dim sRiga,pRiga,s
Dim nLenRiga
nLenRiga =(3 * 5 * 11) + 35
sRiga = Space(nLenRiga)
pRiga = 35
For r = 1 To 12
If r <> 11 Then
Call MidX(sRiga,NomeRuota(r),pRiga)
pRiga = pRiga + 15
End If
Next
Call Scrivi(sRiga,True)
For k = 230 To 0 Step - 1
i = idEstr - k
sRiga = Space(nLenRiga)
pRiga = 35
For r = 1 To 12
If r <> 11 Then
For e = 1 To 5
If aEstrTA(i,r,e) > 0 Then
s = Format2(aEstrTA(i,r,e))
Else
s = "--"
End If
Call MidX(sRiga,s,pRiga)
If e = 5 Then
Call MidX(sRiga,"|",pRiga + 2)
Else
Call MidX(sRiga,".",pRiga + 2)
End If
pRiga = pRiga + 3
Next
End If
Next
Call MidX(sRiga,GetInfoEstrazione(i),1)
Call MidX(sRiga," - R " & FormatSpace(k,3,True) & " |",25)
Call Scrivi(sRiga)
'Call Scrivi( GetInfoEstrazione (i) & " - R " & FormatSpace(k ,3,True) & " |" & sRiga)
Next
End Sub
Sub InitTabAnalitico(Inizio,Fine)
Dim k,r,e,i
ReDim aEstrTA(Fine,12,5)
Call GeneraAnaliticoTurbo(Inizio)
For k = 230 To 0 Step - 1
i = Inizio - k
For r = 1 To 12
If r <> 11 Then
For e = 1 To 5
aEstrTA(i,r,e) = CInt(TabelloneAnaliticoTurbo(k,r,e))
Next
End If
Next
Next
End Sub
#28
Joe91
Mhmhmhm ... Si
Tuttavia scrisse DeGregori:
"Tra il bufalo e locomotiva,
la differenza salta agli occhi:
La locomotiva ha la strada segnata.
Il bufalo può scartare di lato ...
... col mio nome firmai,
e il mio nome era Bufalo Bill"
Che lottologicamente si legge:
Non calcolo il Tabellone Analitico.
Comunque sia, si anche così ... é più veloce.
Non per mancanza di volontà ma per la difficoltà intrinseca
del controllare elaborati a questo liìvello di complessità ...
... riservo di verificare alcune cose "meglio" se ci riesco.
Comunque penso sia utile provare a completare secondo quanto hai scritto.
Se i risultati di questa tua nuova versione saranno uguali
essa sarà sicuramente giusta e se più veloce anche migliore e completa.
BRAVO
 

micro__

Advanced Member >PLATINUM<
#29
LuigiB
un altro sistema ancora piu veloce e adatto a come si sono messe le cose potrebbe essere quello di tralasiciare il tab Analitico e calcolare semplicemente i ritardi dei numeri.
Poi considerare quei numeri che al tale ritardo sono soli e non in compagnia.
Da ritardo di riga diventerebbe "ritardo del ritardo quando il numero è da solo"
Dico dato a come si sono messe le cose perche cosi facendo automaticamente sarebbe come contare solo le "righe piene" e il famoso ritardo 1050 non sarebbe di 1050 ...
#30
Joe91
photo13446-jpg.1996570 (469×706) (lottoced.com)
Come detto ho controllato ancora con una terzo ... ed altro programma.
Con questo si conferma ESATTO anche il "Ritardo Storico 60" (qui, nella colonna RitardoMax).
Mentre il programma citato elenca 562 PRESENZE.
Quindi anch'esso pone maggiore accento "sul rigo"
lasciando in subordine gli altri soggetti indifferentemente siano essi Estratti / Ambi ecc.
Quindi se cade un Ambo ... i 2 numeri protempore presenti nel rigo paiono
da intendersi conteggiati come 2 Estratti Caduti.
Anche la differenza (562-542) pare doversi attribuire alla presenza di 20 Ambi.
...........................
Possiamo dunque procedere ad un passaggio successivo:
Dal mio script : 591+604+562+..... / 10 E' la presenza media nelle 10 ruote.
(Dallo script di Luigi sarebbero i numeri nel rettangolo verde 542+614+574+...+600 / 9.
Abbiamo detto mancare Venezia).
Questa Media è caratteristica per questo Rigo.
Ed ogni "Rigo" ha una sua media caratteristica.
11) ... 800
12) ... 737
13) ... 670
14) ... 660
Eccoci dunque al poter formulare "ad occhio" il pronostico che s'era detto
basato su un "Ritardo di Rigo" elevato nel suo contesto ...
supportato dall'ulteriore mancanza di presenze nel lunghissimo periodo.
Di bello c'è ... che tutto quanto qui s'è assunto forfettariamente .... può essere calcolato.
#31
Joe91
Ok ... Luigi.
Si, quasi.
Quando cade un numero (e sono solo 5)
se ha il ritardo idoneo "azzera" quel determinato rigo.
#34
Joe91
Buona sera a tutte/i.
Ho scritto:
562 cadute nei 5249 concorsi avvenuti per la ruota di FIRENZE
e ... tutto quanto qui s'è assunto forfettariamente ... può essere calcolato.
Quindi contando gli estratti sul rigo 15 abbiamo una sequenza:
1.2.2.1.1.3.2.2.3.0
Sommati 17
1.7 Mediati
Ma avevamo detto che potremmo calcolarli essere
TEORICAMENTE 2.1214 per ogni ruota
Quindi 2.1214 / 18 * 5249 = 619 Estratti Teorici
Mancano all'appello 57.
Ed è lo scompenso che s'era evidenziato sommariamente.
#35
LuigiB
Ciao a tutti , nonostante l'avvicinarsi del ferragosto qui su Lottoced si lavora lo stesso..
Come sapete io sono piu focalizzato sull'aspetto codice che sull'aspetto delle statistiche dove c'è chi è piu competente di me.
Quindi il mio scopo era cercare di velocizzare lo script precedente-
A tale scopo ho implementato la soluzione della creazioene dinamica del tab analitico
e come promesso e dopo aver verificato oro posto il nuovo script
lo script ineffetti diventa piu veloce di 3 volte e piu tuttavia rimane sempre alle 80 righe.
settoo script lo posto solo per completezza infatti ingloba lo script di esempio postato in preced
Oltre a detto script ne posto ancora un altro , questo secondo e nuovo script i ritardi di rigo li calcola in tut'altro modo , infatti è sempre tre volte piu veloce ma questa volta calcola 250 righe
di piu non è certo necessario...
Buon ferragosto a tutti !
primo script
Option Explicit
Dim cIdRit,cIdRitMax,cIdFreq
Dim aEstrTA
Sub Main
Select Case ScegliProcedura
Case 0
ScriviIstruzioni
Case 1
VisualizzaProgressione
Case 2
Call Analisi(True)
Case 3
Call Analisi(False)
End Select
End Sub
Sub InitTabAnalitico(Inizio,Fine)
Dim k,r,e,i
ReDim aEstrTA(Fine,12,5)
Call GeneraAnaliticoTurbo(Inizio)
For k = 230 To 0 Step - 1
i = Inizio - k
For r = 1 To 12
If r <> 11 Then
For e = 1 To 5
aEstrTA(i,r,e) = TabelloneAnaliticoTurbo(k,r,e)
Next
End If
Next
Next
End Sub
Sub AggiornaTabAna(idEstr)
Dim k,r,e,i
Dim aNum,aBNum,nElim,nLimite
nLimite = idEstr - 230
For r = 1 To 12
If r <> 11 Then
Call GetArrayNumeriRuota(idEstr,r,aNum)
If aNum(1) > 0 Then
aBNum = ArrayNumeriToBool(aNum)
nElim = 0
' k = idEstr To idEstr -230 Step -1
k = idEstr
For e = 1 To 5
aEstrTA(k,r,e) = aNum(e)
Next
Do While nElim < 5 And k >= nLimite
k = k - 1
For e = 1 To 5
If aBNum(aEstrTA(k,r,e)) Then
aEstrTA(k,r,e) = 0
nElim = nElim + 1
'If nElim = 5 Then Exit For
End If
Next
Loop
End If
'Next
End If
Next
End Sub
Sub Analisi(bEseguiAnalisi)
Dim Ini,Fin,idEstr,nRit,nRuota,nDaFare,nFatte,p,n,k,nSfald,bValida,sNum,bMostraSoloRigheConNimeri,sTmp
Dim cMaxRigo,cSorte
Dim nCapitaleImpegnato,nTotVincita,nIndiceConvMin,nPostaIniziale,nPercGuadagno,nPrimaEstrGioco,nColpiProgressione
Dim nNumInGioc,nRuotaInGioc,nRetIC,nIdProg,nGiocateTot,bSuperataProg,nMassimaEspos,nVincitaParz,nRetIdRigo,nRetRitRigo
ReDim aPoste(0)
ReDim aRetRigheProgr(0)
Dim aBNumEstrSucc
Dim t
cIdRit = 0
cIdRitMax = 1
cIdFreq = 3
cMaxRigo = 80
cSorte = 1
nIdProg = 0
nGiocateTot = 0
bSuperataProg = False
Ini = EstrazioneIni
Fin = EstrazioneFin
nDaFare = Fin -(Ini - 1)
If bEseguiAnalisi Then
nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",90))
nIndiceConvMin = CInt(InputBox("Inserire un valore intero per l'indice di convenienza minimo al quale la giocata viene eseguita","IcMin",5))
nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))
nPrimaEstrGioco = CInt(InputBox("Inserire la prima estrazione dalla quale iniziare a giocare deve essere un numero compreso tra Inizio e fine Range","Prima estr giocabile",Fin - 100))
If VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPercGuadagno,nPostaIniziale,nIndiceConvMin,nColpiProgressione) = False Then Exit Sub
Call GetVettoreProgressione(1,1,1,nColpiProgressione,aPoste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniziale)
End If
ReDim abRuote(12)
If ScegliRuote(Nothing,abRuote) <= 0 Then
MsgBox "Ruote non selezionate",vbCritical
Exit Sub
End If
t = Timer
Call InitTabAnalitico(Ini,Fin)
ReDim aRitPerRigo(cMaxRigo,12,3)
For idEstr = Ini To Fin - 1
ReDim aNum(5)
'Call GeneraAnaliticoTurbo(idEstr)
Call AggiornaTabAna(idEstr)
nFatte = nFatte + 1
' blocco analisi giocate ==============================
If bEseguiAnalisi Then
If idEstr >= nPrimaEstrGioco And bSuperataProg = False Then
If GetNumeroDaGiocare(idEstr,aRitPerRigo,nFatte,nIndiceConvMin,nNumInGioc,nRuotaInGioc,nRetIC,nRetIdRigo,nRetRitRigo) Then
nIdProg = nIdProg + 1
If nIdProg <= nColpiProgressione Then
nGiocateTot = nGiocateTot + 1
sTmp = FormatSpace(nGiocateTot,5) & " - "
sTmp = sTmp & GetInfoEstrazione(idEstr) & " Num : " & Format2(nNumInGioc) & " "
sTmp = sTmp & SiglaRuota(nRuotaInGioc)
sTmp = sTmp & " I.C. : " & FormatSpace(nRetIC,5,True)
sTmp = sTmp & " Rigo : " & FormatSpace(nRetIdRigo,5,True)
sTmp = sTmp & " Ritardo : " & FormatSpace(nRetRitRigo,5,True)
sTmp = sTmp & " Costo : " & aPoste(nIdProg)
Call Scrivi(sTmp)
nCapitaleImpegnato = GetCapitaleImpegnato(nIdProg,aRetRigheProgr)
If nCapitaleImpegnato > nMassimaEspos Then nMassimaEspos = nCapitaleImpegnato
If VerificaGiocata(idEstr + 1,nNumInGioc,nRuotaInGioc) Then
nVincitaParz = GetVincitaNetta(nIdProg,aRetRigheProgr)
nTotVincita = nTotVincita + nVincitaParz
sTmp = "VINCENTE ! Vinti : " & nVincitaParz
sTmp = sTmp & " Max Esposizione : " & nMassimaEspos
sTmp = sTmp & " Esposizione corrente : " & nCapitaleImpegnato
sTmp = sTmp & " TotVincita : " & nTotVincita
Call Scrivi(sTmp,True,,vbYellow,vbRed)
nIdProg = 0
End If
Else
Scrivi "Superati i limiti della progressione impostata. Termine analisi"
bSuperataProg = True
End If
End If
End If
End If
'======================================================
For nRuota = 1 To 12
If nRuota <> 11 And abRuote(nRuota) Then
Call GetArrayNumeriRuota(idEstr + 1,nRuota,aNum)
'ReDim aBNumEstrSucc(90)
'For p = 1 To 5
' aBNumEstrSucc(aNum(p)) = True
'Next
aBNumEstrSucc = ArrayNumeriToBool(aNum)
For nRit = 0 To cMaxRigo
nSfald = 0
'bValida = False
For p = 1 To 5
'n = TabelloneAnaliticoTurbo(nRit,nRuota,p)
n = TabelloneAnaliticoInterno(idEstr,nRit,nRuota,p)
'If n >0 Then bValida = True
If n > 0 Then
If aBNumEstrSucc(n) Then
nSfald = nSfald + 1
End If
End If
Next
'If bValida Then
If nSfald >= cSorte Then
If aRitPerRigo(nRit,nRuota,cIdRit) > aRitPerRigo(nRit,nRuota,cIdRitMax) Then
aRitPerRigo(nRit,nRuota,cIdRitMax) = aRitPerRigo(nRit,nRuota,cIdRit)
End If
aRitPerRigo(nRit,nRuota,cIdRit) = 0
aRitPerRigo(nRit,nRuota,cIdFreq) = aRitPerRigo(nRit,nRuota,cIdFreq) + 1
Else
aRitPerRigo(nRit,nRuota,cIdRit) = aRitPerRigo(nRit,nRuota,cIdRit) + 1
End If
'End If
If ScriptInterrotto Then Exit For
Next
End If
If ScriptInterrotto Then Exit For
Next
Call AvanzamentoElab(1,nDaFare,nFatte)
If ScriptInterrotto Then Exit For
Next
If bEseguiAnalisi Then
Call Scrivi
Call Scrivi("Giocate eseguite : " & nGiocateTot)
Call Scrivi("Massima esposizione : " & nMassimaEspos)
Call Scrivi("Vincita netta : " & nTotVincita)
Call Scrivi
End If
ReDim aV(7)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ruota"
aV(6) = "NumPresRigoAttuale"
aV(7) = "IndiceConv"
'Call GeneraAnaliticoTurbo(Fin)
Call AggiornaTabAna(Fin)
Messaggio "Creazione tabella"
If MsgBox("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
bMostraSoloRigheConNimeri = True
End If
DoEventsEx
Call InitTabella(aV)
For nRuota = 1 To 12
If nRuota <> 11 And abRuote(nRuota) Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,nRuota,cIdRit)
aV(3) = aRitPerRigo(k,nRuota,cIdRitMax)
aV(4) = aRitPerRigo(k,nRuota,cIdFreq)
aV(5) = NomeRuota(nRuota)
sNum = ""
For p = 1 To 5
'n = TabelloneAnaliticoTurbo(k,nRuota,p)
n = TabelloneAnaliticoInterno(Fin,k,nRuota,p)
sNum = Iif(n > 0,sNum & n & ".",sNum)
Next
sNum = RimuoviLastChr(sNum,".")
bValida = False
If bMostraSoloRigheConNimeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
aV(7) = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(nFatte,aRitPerRigo(k,nRuota,cIdFreq))),3)
Call AddRigaTabella(aV)
End If
Next
End If
Next
Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
Call Scrivi("Fine : " & GetInfoEstrazione(Fin))
Call CreaTabella(2)
Call Scrivi(Timer - t)
End Sub
Function GetCapitaleImpegnato(nIdProg,aRigheProgr)
ReDim aV(0)
Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
GetCapitaleImpegnato = CDbl(Trim(aV(4)))
End Function
Function GetVincitaNetta(nIdProg,aRigheProgr)
ReDim aV(0)
Call SplitByChar(aRigheProgr(nIdProg),"|",aV)
GetVincitaNetta = CDbl(Trim(aV(7)))
End Function
Function VerificaGiocata(idEstr,nNumGiocato,nRuota)
Dim k
ReDim aNum(0)
Dim aBNum
Dim bRet
bRet = False
Call GetArrayNumeriRuota(idEstr,nRuota,aNum)
aBNum = ArrayNumeriToBool(aNum)
'For k = 1 To 5
' If aNum(k) = nNumGiocato Then
' bRet = True
' Exit For
' End If
' Next
' VerificaGiocata = bRet
VerificaGiocata = aBNum(nNumGiocato)
End Function
Function GetNumeroDaGiocare(idEstr,aRitPerRigo,nFatte,nIndiceConvMin,nRetNumInGioc,nRetRuotaInGioc,nRetIC,nRetIdRigo,nRetRitRigo)
Dim k,p,nQ,n,nIc,nRuota,nIndiceConvTrov,nNumDaGioc
nIndiceConvTrov = nIndiceConvMin
nRetNumInGioc = 0
nRetRuotaInGioc = 0
nRetIC = 0
nRetIdRigo = 0
nRetRitRigo = 0
For k = LBound(aRitPerRigo) To UBound(aRitPerRigo)
For nRuota = 1 To 12
If nRuota <> 11 Then
nIc = Round(Dividi(aRitPerRigo(k,nRuota,cIdRit),Dividi(nFatte,aRitPerRigo(k,nRuota,cIdFreq))),3)
If nIc >= nIndiceConvTrov Then
nQ = 0
nNumDaGioc = 0
For p = 1 To 5
'n = TabelloneAnaliticoTurbo(k,nRuota,p)
n = TabelloneAnaliticoInterno(idEstr,k,nRuota,p)
If n > 0 Then
nNumDaGioc = n
nQ = nQ + 1
If nQ > 1 Then Exit For
End If
Next
If nQ = 1 Then
nRetNumInGioc = nNumDaGioc
nRetRuotaInGioc = nRuota
nIndiceConvTrov = nIc
nRetIC = nIndiceConvTrov
nRetIdRigo = k
nRetRitRigo = aRitPerRigo(k,nRuota,cIdRit)
End If
End If
End If
Next
Next
GetNumeroDaGiocare = nRetNumInGioc > 0
End Function
Function ScegliProcedura()
Dim aVoci
aVoci = Array("Istruzioni","Visualizza progressione","Analisi + statistica","Solo statistica")
ScegliProcedura = ScegliOpzioneMenu(aVoci,0)
End Function
Sub ScriviIstruzioni
Dim sTesto
sTesto = "Lo script analizza i ritardi di rigo del tabellone analitico all'interno del range impostato" & vbCrLf
sTesto = sTesto & "nel programma." & vbCrLf
sTesto = sTesto & "Possono essere analizzate tutte le ruote ma non si puo scegliere la ruota TUTTE" & vbCrLf
sTesto = sTesto & "Un rigo del tabellone analitico si sfalda se all'estrazione successiva sulla stessa ruota esce" & vbCrLf
sTesto = sTesto & "uno dei numeri in esso contenuti" & vbCrLf
Call Scrivi(sTesto)
sTesto = "Al termine dell'analisi verra mostrata una tabella con la situazione attuale ovvero quella che" & vbCrLf
sTesto = sTesto & "si configura nel momento dell'estrazione identificata come fine range analizzato." & vbCrLf
Call Scrivi(sTesto)
sTesto = "E' anche possibile analizzare la strategia di gioco indicando da quale estrazione all'interno del" & vbCrLf
sTesto = sTesto & "range analizzato iniziare a giocare." & vbCrLf
sTesto = sTesto & "A tale scopo bisogna fornire i parametri per il calcolo della progressione da applicare." & vbCrLf
sTesto = sTesto & "Indicando un valore minimo per l' INDICE DI CONVENIENZA lo script giochera il numero" & vbCrLf
sTesto = sTesto & "presente nel rigo con l'indice di convenienza piu alto maggiore o uguale al minimo previsto." & vbCrLf
sTesto = sTesto & "N.B verranno considerati e giocate solo le righe del Tab analitico nel cui spazio si trovi un solo numero." & vbCrLf
sTesto = sTesto & "Ovvero verra giocato il rigo con indice di convenienza piu alto in cui sia presente un solo numero." & vbCrLf
sTesto = sTesto & "Se durante l'analisi delle giocate si superano i colpi previsti dalla progressione il gioco sarà interrotto con perdita." & vbCrLf
sTesto = sTesto & "e verrà interrotta l'analisi sulle giocate mentre la statistica continuera fino alla fine." & vbCrLf
Call Scrivi(sTesto)
sTesto = "Per cercare di non andare in perdita è opportuno impostare un congruo numero di colpi per la progressione" & vbCrLf
sTesto = sTesto & "da usare. Questo prevede di avere a disposizione un discreto capitale da investire per ricavare somme" & vbCrLf
sTesto = sTesto & "modeste per non dire irrisorie in confronto al capitale esposto al rischio." & vbCrLf
Call Scrivi(sTesto,True,,,vbRed)
End Sub
Sub VisualizzaProgressione
Dim nPostaIniziale,nPercGuadagno,nColpiProgressione,k
ReDim aPoste(0)
ReDim aRetRigheProgr(0)
nColpiProgressione = CInt(InputBox("Inserire la quantita di colpi potenziali per la progressione","Colpi progressione",5))
nPostaIniziale = CInt(InputBox("Inserire la posta per la prima giocata","Posta",1))
nPercGuadagno = CInt(InputBox("Inserire la percentuale di guadagno minima per calcolare la progressione","Percentuale guadagno",10))
If nColpiProgressione > 0 And nPostaIniziale > 0 And nPercGuadagno > 0 Then
Call GetVettoreProgressione(1,1,1,nColpiProgressione,aPoste,aRetRigheProgr,1,1,0,nPercGuadagno,nPostaIniziale)
For k = 0 To UBound(aRetRigheProgr)
Call Scrivi(aRetRigheProgr(k))
Next
Else
MsgBox "Parametri non validi",vbCritical
End If
End Sub
Function VerificaParametriGioco(Ini,Fin,nPrimaEstrGioco,nPercGuadagno,nPostaIniziale,nIndiceConvMin,nColpiProgressione)
Dim sMsg
sMsg = ""
If nPrimaEstrGioco < Ini Or nPrimaEstrGioco > Fin Then
sMsg = "Prima estrazione di gioco non valida"
End If
If nPercGuadagno <= 0 Or nPercGuadagno > 100 Then
sMsg = "Percentuale di guadagno sul capitale impiegato non valida"
End If
If nPostaIniziale <= 0 Then
sMsg = "Posta iniziale non valida"
End If
If nIndiceConvMin <= 0 Then
sMsg = "Indice convenienza minimo non valido"
End If
If nColpiProgressione <= 0 Then
sMsg = "Impostare il numero di colpi per la progressione"
End If
If sMsg <> "" Then
MsgBox sMsg,vbCritical
Else
VerificaParametriGioco = True
End If
End Function
Function TabelloneAnaliticoInterno(IdEstr,Rit,nRuota,nPos)
Dim i
i = IdEstr - Rit
TabelloneAnaliticoInterno = aEstrTA(i,nRuota,nPos)
End Function
secondo script
Option Explicit
Sub Main
Dim Ini,Fin
Dim r,k,e,n,nRit,nSfald,bMostraSoloRigheConNumeri,cMaxRigo,sNum,bValida
ReDim aRt(1)
ReDim aNumRuota(5)
Dim aBNumRuota
Dim t
Dim cIdRit,cIdRitMax,cIdFreq
Dim nFatte
cMaxRigo = 250
cIdRit = 0
cIdRitMax = 1
cIdFreq = 2
t = Timer
ReDim aRitPerRigo(cMaxRigo,12,2)
Ini = EstrazioneIni
Fin = EstrazioneFin
nFatte = Fin -(Ini)
For r = 1 To 12
If r <> 11 Then
ReDim aN(90)
aRt(1) = r
Call GetRitardoEstratti(aRt,Ini - 1,aN)
For k = Ini To Fin - 1
ReDim aTa(cMaxRigo,5)
Call GetArrayNumeriRuota(k,r,aNumRuota)
If aNumRuota(1) > 0 Then
aBNumRuota = ArrayNumeriToBool(aNumRuota)
For n = 1 To 90
If aBNumRuota(n) Then
aN(n) = 0
Else
aN(n) = aN(n) + 1
End If
If aN(n) <= cMaxRigo Then
If aTa(aN(n),0) < 5 Then
aTa(aN(n),0) = aTa(aN(n),0) + 1
aTa(aN(n),aTa(aN(n),0)) = n
End If
End If
Next
For nRit = 0 To cMaxRigo
If aTa(nRit,0) > 0 Then
nSfald = 0
Call GetArrayNumeriRuota(k + 1,r,aNumRuota)
aBNumRuota = ArrayNumeriToBool(aNumRuota)
For e = 1 To aTa(nRit,0)
If aBNumRuota(aTa(nRit,e)) Then
nSfald = nSfald + 1
Exit For
End If
Next
If nSfald > 0 Then
If aRitPerRigo(nRit,r,cIdRit) > aRitPerRigo(nRit,r,cIdRitMax) Then
aRitPerRigo(nRit,r,cIdRitMax) = aRitPerRigo(nRit,r,cIdRit)
End If
aRitPerRigo(nRit,r,cIdRit) = 0
aRitPerRigo(nRit,r,cIdFreq) = aRitPerRigo(nRit,r,cIdFreq) + 1
Else
aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
End If
Else
aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
End If
Next
End If
Next
End If
Call AvanzamentoElab(1,12,r)
Next
ReDim aV(7)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ruota"
aV(6) = "NumPresRigoAttuale"
aV(7) = "IndiceConv"
Call GeneraAnaliticoTurbo(Fin)
Messaggio "Creazione tabella"
If MsgBox("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
bMostraSoloRigheConNumeri = True
End If
DoEventsEx
Call InitTabella(aV)
For r = 1 To 12
If r <> 11 Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,r,cIdRit)
aV(3) = aRitPerRigo(k,r,cIdRitMax)
aV(4) = aRitPerRigo(k,r,cIdFreq)
aV(5) = NomeRuota(r)
sNum = ""
For e = 1 To 5
n = TabelloneAnaliticoTurbo(k,r,e)
sNum = Iif(n > 0,sNum & n & ".",sNum)
Next
sNum = RimuoviLastChr(sNum,".")
bValida = False
If bMostraSoloRigheConNumeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
aV(7) = Round(Dividi(aRitPerRigo(k,r,cIdRit),Dividi(nFatte,aRitPerRigo(k,r,cIdFreq))),3)
Call AddRigaTabella(aV)
End If
Next
End If
Next
Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
Call Scrivi("Fine : " & GetInfoEstrazione(Fin))
Call CreaTabella(2)
Scrivi Timer - t
End Sub
 

micro__

Advanced Member >PLATINUM<
#36
Joe91
Ciao Luigi.
Ho provato questo tuo secondo script.
E' molto migliorato.
Riporto per chi avesse interesse l'immagine di una semplice analisi grafica.
Da quest risulta piuttosto evidente quanto avevamo detto.
All' aumentare del rigo ...
aumenta il valore del ritardo attuale
e le due serie di risultati diventano correlate.
Sono (quasi) amplificazione/compressione l'una dell'altra.
Cordiali saluti.
photo13451-jpg.1996831 (574×524) (lottoced.com)
#37
I LEGEND
Ciao a tutti Luigi anche senza pc studio i tuoi script che sono eccezionali realmente
Adesso proverò a capire la logica del secondo
Bravissimi.
Joe se ti va anche senza postare lo script ( ....) spiegheresti il ragionamento con cui hai affrontato il problema ?
Ciao e grazie in ogni caso .
P.s
Condivido pienamente quanto scritto da luigi.
L aspetto più interessante è il codice e la logica con cui si affrontano e si trovano le soluzioni.
#38
LuigiB
ciao Legend .. questo script si basa sui ritardi degli estratti , ad ogni estrazione aggiorna il ritardo dei 90 numeri e colloca ogni numero nella specifica riga del tabellone (quella del suo ritardo)
dopodiche analizza il tabellone per verificare gli sfaldamenti sull'estrazione successiva.
buon ferragostoa tutti
#39
Beppignello
E' possibile secondo voi, aggiungere qualche colonna in output, con questi dati
Presenze teoriche al ritardo
Presenze riscontrate
Diff
#40
Joe91
Ciao Ilegend.
E' esattamente quello che scrive Luigi.
Se lo script funziona, cioè produce risultati esatti e corrispondenti a quelli richiesti / desiderati / auspicati ...
Significa che: problema, soluzione, risultato sono stati correttamente tradotti in un algoritmo risolutivo.
Quindi "il problema" è stato descritto / affrontato / capito ... risolto
Eppoi la soluzione, ovvero l'algoritmo risolutivo, è stato codificato correttamente.
In sintesi l'esecuzione dello script ... fornisce un risultato "corretto".
Quindi la descrizione che Luigi ha scritto nel messaggio precedente ... "nella sostanza"
deve essere identica a tutte quelle delle soluzioni risolutive (e naturalmente) "esatte".
Dunque l'unica differenza può essere sul "come".
Luigi ha codificato secondo lo schema classico appoggiandosi al TabelloneAnalitico.
Io no.
Ma nella sostanza ... sono la stessa cosa.
Solo che alla domanda "quando?" nella risposta
Luigi fa premettere ... sul tabellone analitico ...
Io invece controllo che il lottrone caduto sia "idoneo".
Poi ci sono differenze di calcolo e di interpretazione ma è altro discorso.
Non scendo nel dettaglio perchè non hai Pc per controllare.
Ed un confronto vero e degno di tale appellativo è anche difficile da realizzare.
Ho provato comunque a restringere il confronto al calcolo di una sola ruota, (Firenze)
la velocita di analisi del mio algoritmo è circa 7 volte piu veloce.
3.26 contro 22.8 secondi.
Quindi siamo a circa 7 volte ... Va detto però che io non ho conteggiato lo storico.
Neppure l'indice di equità.
Stimo ... per essi si debba aggiungere 1 secondo.
Cordiali saluti.
PS: x Beppignello. E' quanto ho già tracciato al messaggio #34,
dove c'è già un esempio di calcolo.
scrivendo ... che è tutto "controllabile" attraverso formule e calcoli.
photo13452-jpg.1996869 (385×403) (lottoced.com)
#42
ILEGEND
Ciao joe grazie per la risposta.
A mio avviso
lo storico è fondamentale per fare un raffronto ,ma lo calcoli nel ritardo quindi non credo che ti porti via molto tempo.
Complimenti.
Ribadisco la logica è l unica cosa che conta.
Mi manca tutto questo.
Mi manca il confronto con voi
Ciao
#43
lUIGIb
per la serie non mi godo il ferragosto se non velocizzo ancora di piu lo script ecco qui una nuova versioene derivata dalla precedente .. 5 volte piu veloce sembrerebbe ... i risultati sembrano identici.
In questo script è calcolata l'attendibilita con la formula A = QR /QR + QT dove Qr = quantita reale , QT = Quantita teorica.
Option Explicit
Sub Main
Dim Ini,Fin
Dim r,k,e,n,nRit,nSfald,bMostraSoloRigheConNumeri,cMaxRigo,sNum,bValida,qNum
ReDim aRt(1)
ReDim aNumRuota(5)
Dim aBNumRuota
Dim t
Dim cIdRit,cIdRitMax,cIdFreq
Dim nFatte
Dim Parz
If MsgBox("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
bMostraSoloRigheConNumeri = True
End If
cMaxRigo = 250
cIdRit = 0
cIdRitMax = 1
cIdFreq = 2
t = Timer
ReDim aRitPerRigo(cMaxRigo,12,2)
Ini = EstrazioneIni
Fin = EstrazioneFin
nFatte = Fin -(Ini)
For r = 1 To 12
If r <> 11 Then
ReDim aN(90)
aRt(1) = r
Call GetRitardoEstratti(aRt,Ini ,aN)
For k = Ini+1 To Fin
'ReDim aTa(cMaxRigo,5)
Call GetArrayNumeriRuota(k,r,aNumRuota)
If aNumRuota(1) > 0 Then
For nRit = 0 To cMaxRigo
aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
Next
For e = 1 To 5
nRit = (aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) -1)
If nRit >aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) Then
aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) = nRit
End If
aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) =0
aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) =aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) +1
Next
aBNumRuota = ArrayNumeriToBool(aNumRuota)
For n = 1 To 90
If aBNumRuota(n) Then
aN(n) = 0
Else
aN(n) = aN(n) + 1
End If
'If aN(n) <= cMaxRigo Then
' If aTa(aN(n),0) < 5 Then
' aTa(aN(n),0) = aTa(aN(n),0) + 1
' aTa(aN(n),aTa(aN(n),0)) = n
' End If
' End If
Next
'For nRit = 0 To cMaxRigo
' If aTa(nRit,0) > 0 Then
' nSfald = 0
' Call GetArrayNumeriRuota(k + 1,r,aNumRuota)
' aBNumRuota = ArrayNumeriToBool(aNumRuota)
' For e = 1 To aTa(nRit,0)
' If aBNumRuota(aTa(nRit,e)) Then
' nSfald = nSfald + 1
' Exit For
' End If
' Next
' If nSfald > 0 Then
' If aRitPerRigo(nRit,r,cIdRit) > aRitPerRigo(nRit,r,cIdRitMax) Then
' aRitPerRigo(nRit,r,cIdRitMax) = aRitPerRigo(nRit,r,cIdRit)
' End If
' aRitPerRigo(nRit,r,cIdRit) = 0
' aRitPerRigo(nRit,r,cIdFreq) = aRitPerRigo(nRit,r,cIdFreq) + 1
' Else
' aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
' End If
' Else
' aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
' End If
' Next
End If
Next
End If
Call AvanzamentoElab(1,12,r)
Next
ReDim aV(10)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ruota"
aV(6) = "NumPresRigoAttuale"
aV(7) = "IndiceConv"
aV(8) = "QTeorica"
aV(9) = "QReale"
aV(10) = "Attendibilita"
Call GeneraAnaliticoTurbo(Fin)
Messaggio "Creazione tabella"
DoEventsEx
Call InitTabella(aV)
For r = 1 To 12
If r <> 11 Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,r,cIdRit)
aV(3) = aRitPerRigo(k,r,cIdRitMax)
aV(4) = aRitPerRigo(k,r,cIdFreq)
aV(5) = NomeRuota(r)
sNum = ""
qNum = 0
For e = 1 To 5
n = TabelloneAnaliticoTurbo(k,r,e)
If n > 0 Then
qNum = qNum + 1
sNum = sNum & n & "."
End If
Next
sNum = RimuoviLastChr(sNum,".")
bValida = False
If bMostraSoloRigheConNumeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
aV(7) = Round(Dividi(aRitPerRigo(k,r,cIdRit),Dividi(nFatte,aRitPerRigo(k,r,cIdFreq))),3)
aV(8) = Round(QuantitaTeoricaCombAlRitX(k),3)
aV(9) = qNum
aV(10) = Round(Dividi(qNum,(qNum + CDbl(aV(8)))),3)
Call AddRigaTabella(aV)
End If
Next
End If
Next
Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
Call Scrivi("Fine : " & GetInfoEstrazione(Fin))
Call CreaTabella(2,,,100)
Scrivi Timer - t
End Sub
#49
Joe91
Ciao Luigi.
Ho visto il nuovo script (al mesaggio 43) e sembra un ottimo lavoro.
5200 estrazioni per ruota, in un secondo o due è una buonissima velocità.
BRAVO ... hai ben sfruttato il riposo ferragostano!
Uno pochino bisogna dare ragione ad Alien forse sarebbe meglio poter gestire ruota per ruota.
Buono ed utile al riguardo il consiglio di Rodolfo.
In ogni caso ... per la Nazionale bisogna prevedere che per essa
non ci sono le stesse estrazioni, avvenute nelle altre ruote..
E piu genericamente il conteggio delle estrazioni utili.
Se concordi ... potremmo inserire ancora i calcoli statistici
cui avevo acccennato e che Beppignello ha richiesto.
Ovvero "Numero Presenze Teroriche" con gli sconpensi corrispetiivi delle Presenze Reali. (Già in colonna 4)
Poi sarà un vero "top di gamma" del quale ... non ti si può che fare i complimenti.
PS: Organizzo la formula per il calcolo esatto delle presenze teoriche ... e te le faccio avere.
Sono semplici. Rileggo anche cosa hai scritto ...
 

micro__

Advanced Member >PLATINUM<
#50
LuigiB
ciao Joe . in questo script sono gestite le ruote.
Il calcolo dell'attendibilità che ho messo per te è esatto ?
Quale altro valore dobbiamo mettere ?
Option Explicit
Sub Main
Dim Ini,Fin
Dim r,k,e,n,nRit,nSfald,bMostraSoloRigheConNumeri,cMaxRigo,sNum,bValida,qNum
Dim aBRuote
ReDim aRt(1)
ReDim aNumRuota(5)
Dim aBNumRuota
Dim t
Dim cIdRit,cIdRitMax,cIdFreq
Dim nFatte
Dim Parz
If MsgBox("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
bMostraSoloRigheConNumeri = True
End If
Call ScegliRuote(Nothing,aBRuote)
cMaxRigo = 250
cIdRit = 0
cIdRitMax = 1
cIdFreq = 2
t = Timer
ReDim aRitPerRigo(cMaxRigo,12,2)
Ini = EstrazioneIni
Fin = EstrazioneFin
nFatte = Fin -(Ini)
For r = 1 To 12
If r <> 11 Then
If aBRuote(r) Then
ReDim aN(90)
aRt(1) = r
Call GetRitardoEstratti(aRt,Ini,aN)
For k = Ini + 1 To Fin
'ReDim aTa(cMaxRigo,5)
Call GetArrayNumeriRuota(k,r,aNumRuota)
If aNumRuota(1) > 0 Then
For nRit = 0 To cMaxRigo
aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
Next
For e = 1 To 5
nRit =(aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) - 1)
If nRit > aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) Then
aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) = nRit
End If
aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) = 0
aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) = aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) + 1
Next
aBNumRuota = ArrayNumeriToBool(aNumRuota)
For n = 1 To 90
If aBNumRuota(n) Then
aN(n) = 0
Else
aN(n) = aN(n) + 1
End If
'If aN(n) <= cMaxRigo Then
' If aTa(aN(n),0) < 5 Then
' aTa(aN(n),0) = aTa(aN(n),0) + 1
' aTa(aN(n),aTa(aN(n),0)) = n
' End If
' End If
Next
'For nRit = 0 To cMaxRigo
' If aTa(nRit,0) > 0 Then
' nSfald = 0
' Call GetArrayNumeriRuota(k + 1,r,aNumRuota)
' aBNumRuota = ArrayNumeriToBool(aNumRuota)
' For e = 1 To aTa(nRit,0)
' If aBNumRuota(aTa(nRit,e)) Then
' nSfald = nSfald + 1
' Exit For
' End If
' Next
' If nSfald > 0 Then
' If aRitPerRigo(nRit,r,cIdRit) > aRitPerRigo(nRit,r,cIdRitMax) Then
' aRitPerRigo(nRit,r,cIdRitMax) = aRitPerRigo(nRit,r,cIdRit)
' End If
' aRitPerRigo(nRit,r,cIdRit) = 0
' aRitPerRigo(nRit,r,cIdFreq) = aRitPerRigo(nRit,r,cIdFreq) + 1
' Else
' aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
' End If
' Else
' aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
' End If
' Next
End If
Next
End If
End If
Call AvanzamentoElab(1,12,r)
Next
ReDim aV(10)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ruota"
aV(6) = "NumPresRigoAttuale"
aV(7) = "IndiceConv"
aV(8) = "QTeorica"
aV(9) = "QReale"
aV(10) = "Attendibilita"
Call GeneraAnaliticoTurbo(Fin)
Messaggio "Creazione tabella"
DoEventsEx
Call InitTabella(aV)
For r = 1 To 12
If r <> 11 And aBRuote (r) Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,r,cIdRit)
aV(3) = aRitPerRigo(k,r,cIdRitMax)
aV(4) = aRitPerRigo(k,r,cIdFreq)
aV(5) = NomeRuota(r)
sNum = ""
qNum = 0
For e = 1 To 5
n = TabelloneAnaliticoTurbo(k,r,e)
If n > 0 Then
qNum = qNum + 1
sNum = sNum & n & "."
End If
Next
sNum = RimuoviLastChr(sNum,".")
bValida = False
If bMostraSoloRigheConNumeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
aV(7) = Round(Dividi(aRitPerRigo(k,r,cIdRit),Dividi(nFatte,aRitPerRigo(k,r,cIdFreq))),3)
aV(8) = Round(QuantitaTeoricaCombAlRitX(k),3)
aV(9) = qNum
aV(10) = Round(Dividi(qNum,(qNum + CDbl(aV(8)))),3)
Call AddRigaTabella(aV)
End If
Next
End If
Next
Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
Call Scrivi("Fine : " & GetInfoEstrazione(Fin))
Call SetTableWidth("100%")
Call CreaTabellaOrdinabile (2)
Scrivi Timer - t
End Sub
#51
LuigiB
per il rit teorico ho usato la funzione del programma
se scrivo
scrivi Round(QuantitaTeoricaCombAlRitX(0),3)
mi da 5 .. ovvero al ritardo 0 ci sono teoricamente e praticamente 5 numeri .. io l'avevo presa da un libro del gorgia in mio possesso .. non so se esatta ..
#52
Beppignello
io il teorico lo calcolo così:
Pr.teo = 5*(17/18)^RC
ciao
#53
LuigiB
stando a quanto dice Beppignello il calcolo allora è esatto , la funzione di spaziometria da gli stessi risultati
Option Explicit
Sub Main
Dim r
For r =0 To 100
Scrivi GetPresTeo (r) & " " & QuantitaTeoricaCombAlRitX (r)
Next
End Sub
Function GetPresTeo (Rit)
GetPresTeo =5*(17/18)^Rit
End Function
#54
ILEGEND
Ciao luigi ,questa è una funzione che utilizzavo spesso , anche quella a fasce e ti confermo che i risultati erano allineati con quelli di altri utenti che utilizzavano altri software.
Ciao un saluto a tutti
#57
BEPPIGNELLO
16578-cf07f1705777df35c8de2231e2d6230b.jpg (150×99) (lottoced.com)
se vuoi qualche idea
io ho pensato con il tuo script di inserire questi campi:
1) Pr.Teor x il sincronismo teosinc = 5*(17/18)^Rc
2) Pr.Teor. x l'isocronismo teoisoc = 55*(17/18)^Rc
3) Pr.Reali x comb.ruota
4) Pr.Reali x comb.su 11 ruote(nz. inclusa)
5) Diff. +/- = Pr.Reali - Pr.Teor
Pr.Estratti Determinati 1° su Ruota Rigo
Pr.Estratti Determinati 2° su Ruota Rigo
Pr.Estratti Determinati 3° su Ruota Rigo
Pr.Estratti Determinati 4° su Ruota Rigo
Pr.Estratti Determinati 5° su Ruota Rigo
Pr.Teoriche Tot.Attese da combinazione pos.det. 1°2°3°4°5° ciclo a 90 estraz.
Pr.Estratti Determinati 1° storico
Pr.Estratti Determinati 2° storico
Pr.Estratti Determinati 3° storico
Pr.Estratti Determinati 4° storico
Pr.Estratti Determinati 5° storico
Pr.Teoriche Tot.Attese da combinazione pos.det. 1°2°3°4°5° ciclo da 3950 estraz.
 

micro__

Advanced Member >PLATINUM<
#59
JOE91
LuigiB;n1997013 ha scritto:
ciao Joe . in questo script sono gestite le ruote.
Il calcolo dell'attendibilità che ho messo per te è esatto ?
Quale altro valore dobbiamo mettere ?
]
Ciao Luigi.
Ok ... per le ruote.
Per il resto ... più no che si.
Diciamo che quella è una formula approssimata.
Ma soprattutto che "riassume" solo una prima parte del ragionamento.
Esso è questo (per sommi capi):
Ad ogni rigo (ovvero per ogni ritardo) sono teoricamente presenti "un tot" di numeri.
Teoricamente: Dunque tanto 5 come 0.00000001 in funzione del ritardo considerato.
Ognuna di queste presenze (teoriche) ha la possibilità di estrazione di "1/18" AD OGNI ESTRAZIONE.
Quindi "il dato" della casella è "per una singola estrazione" ... e non serve quasi a niente,
in un ambiente che si estende nel tempo.
Essi, andrebbero moltiplicati per il numero di estrazioni considerate (per 5249) dal 1945 ad oggi.
In questo modo si otterrebbe la "frequenza teorica" per ogni possibile ritardo.
Ovvero si avrebbe la possibilità di costruire una curva di riferimento.
Cioè la curva delle PRESENZE teoriche e/o ATTESE.
Chi utilizza L8+ ritrova questi dati teorici dopo aver selezionato e calcolato il Tabellone Analitico.
Scegliendo l'opzione "Avanzato" ... e dopo aver spuntato anche la casella per le "statistiche di riga".
trova appunto la colonna delle frequenze teoriche di cui si sto scrivendo.
Si diceva che... moltiplicando un dato approssimato per oltre 5mila ...
si amplifica molto l'errore di approssimazione. Esso, diversamente accettabile, termina di esserlo.
Dunque si, la formula esatta contempla necessariamente e il ritardo e le probabilità 5/90.
Ma la formula esatta è più complessa.
In sintesi ... per le ragioni esposte quanto dite ... per me non va bene.
Ho cercato di ottenere una "curva di riferimento" con la formula che avete proposto.
Per riassumere con un grafico ... quanto sto dicendo i dati reali della Ruota di Firenze formano la curva 1 BLU.
Quelli della curva teorica da me calcolata ... sono quelli della serie 3 VERDE.
Quelli ottenibili con la fourmula che avete proposto disegnano la curva 2 ROSSA.
Questa terza, dicevo, è giusta nel suo dna ...
ma si avvicina troppo poco ai dati reali per ritenerla rappresentativa.
Per me, quella verde "media" molto meglio i dati reali.
Cordiali saluti.
photo13456-jpg.1997067 (713×641) (lottoced.com)
#60
LUIGIB
Bene Joe , se esplichi la formula la implemento nello script.
Io per quello dicevo di aspettare te... lo sapevo che su sti calcoli c'era qualcosa da vedere ..
ciao
#61
JOE91
Option Explicit
Sub Main
'PresenzeTeoriche By Joe
Dim Ritardo,Estrazioni
Estrazioni = 5249 'Valide
Scrivi "Rit. Pres.Teor.",True
For Ritardo = 1 To 250 'Ritardo
Scrivi FormatSpace(Ritardo - 1,3,True),0,0
Scrivi FormatSpace(PresenzeTeoriche(Ritardo,Estrazioni),10,True)
Next
End Sub
Function PresenzeTeoriche(Ritardo,Estrazioni)
Dim P,Q
Dim Att,Pre
P = 5 ' Estratti
Q = 17/18 ' Probabilità Contraria
Att = 1 - Q^Ritardo 'Attuale
Pre = 1 - Q^(Ritardo - 1)'Precedente
PresenzeTeoriche = Round(P*Estrazioni*(Att - Pre))
End Function
#62
LUIGIB
in quest'ottica joe la quantita reale dovrebeb essere la frequenza riscontrata o sbaglio ?
#63
LUIGIB
LuigiB;n1997092 ha scritto:
poi c'era una cosa che volevo chiederti a proposito di questa formula.
Se le estrazioni analizzate per ipotesi fossero solo 1 perche le presenze teoriche alle varie righe indicano 0 ? C'è qualcosa che nmon mi è chiaro ..
Ho arrotondato
del resto numeri con molti decimali ...diventano illegibili.
togliendo l'arrotondamento si ottiene:
Rit. Pres.Teor.
0 0,277777777777778
1 0,262345679012346
2 0,247770919067216
3 0,234005868007925
4 0,221005542007486
5 0,208727456340402
Mentre da un lato non sono sicurissimo ... rilevo ... che funziona molto meglio.
Poi ... è statistica mica può garantire la vincita ... per questo ci sono i ciarlatani.
Seriamente: Cerco di controllare meglio.
L' utilità di un confronto si ottiene tra la colonna 4 frequenza già presente e quella Teorica.
con un eventuale ulteriore evidenziazione degli scostamenti.
Buona serata
photo13457-jpg.1997097 (480×561) (lottoced.com)
#65
LUIGIB
Option Explicit
Dim cIdRit,cIdRitMax,cIdFreq,cMaxRigo
Sub Main
Dim Ini,Fin
Dim r,k,e,n,nRit,nSfald,bMostraSoloRigheConNumeri
Dim aBRuote
ReDim aRt(1)
ReDim aNumRuota(5)
Dim aBNumRuota
Dim T
If MsgBox("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
bMostraSoloRigheConNumeri = True
End If
Call ScegliRuote(Nothing,aBRuote)
cMaxRigo = 250
cIdRit = 0
cIdRitMax = 1
cIdFreq = 2
T = Timer
ReDim aRitPerRigo(cMaxRigo,12,2)
Ini = EstrazioneIni
Fin = EstrazioneFin
For r = 1 To 12
If r <> 11 Then
If aBRuote(r) Then
ReDim aN(90)
aRt(1) = r
Call GetRitardoEstratti(aRt,Ini,aN)
For k = Ini + 1 To Fin
Call GetArrayNumeriRuota(k,r,aNumRuota)
If aNumRuota(1) > 0 Then
For nRit = 0 To cMaxRigo
aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
Next
For e = 1 To 5
nRit =(aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) - 1)
If nRit > aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) Then
aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) = nRit
End If
aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) = 0
aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) = aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) + 1
Next
aBNumRuota = ArrayNumeriToBool(aNumRuota)
For n = 1 To 90
If aBNumRuota(n) Then
aN(n) = 0
Else
aN(n) = aN(n) + 1
End If
Next
End If
Next
End If
End If
Call AvanzamentoElab(1,12,r)
Next
Scrivi "Tempo Elab : " & Timer - T
T = Timer
Call GestioneOutput(Ini,Fin,bMostraSoloRigheConNumeri,aBRuote,aRitPerRigo)
Scrivi "Tempo crea tabella : " & Timer - T
End Sub
Sub GestioneOutput(Ini,Fin,bMostraSoloRigheConNumeri,abRuote,aRitPerRigo)
Dim r,k,e,n,sNum,bValida,qNum,nFatte,qRuote
nFatte = Fin -(Ini)
ReDim aV(18)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ru"
aV(6) = "Numeri"
aV(7) = "IC"
aV(8) = "QR"
aV(9) = "QT"
aV(10) = "QR-QT"
aV(11) = "A"
aV(12) = "QRRu"
aV(13) = "QTRu"
aV(14) = "QRRu -QTRu"
aV(15) = "ARu"
aV(16) = "PT"
aV(17) = "Freq-PT"
aV(18) = "A"
ReDim aPresTotPerRigo(cMaxRigo)
Call GeneraAnaliticoTurbo(Fin)
For r = 1 To 12
If abRuote(r) Then qRuote = qRuote + 1
Next
For k = 0 To cMaxRigo
For r = 1 To 12
If abRuote(r) Then
If r <> 11 Then
For e = 1 To 5
n = TabelloneAnaliticoTurbo(k,r,e)
If n > 0 Then
aPresTotPerRigo(k) = aPresTotPerRigo(k) + 1
End If
Next
End If
End If
Next
Next
Messaggio "Creazione tabella"
DoEventsEx
Call InitTabella(aV)
For r = 1 To 12
If r <> 11 And abRuote(r) Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,r,cIdRit)
aV(3) = aRitPerRigo(k,r,cIdRitMax)
aV(4) = aRitPerRigo(k,r,cIdFreq)
aV(5) = NomeRuota(r)
sNum = ""
qNum = 0
For e = 1 To 5
n = TabelloneAnaliticoTurbo(k,r,e)
If n > 0 Then
qNum = qNum + 1
sNum = sNum & n & "."
End If
Next
sNum = RimuoviLastChr(sNum,".")
bValida = False
If bMostraSoloRigheConNumeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
aV(7) = Round(Dividi(aRitPerRigo(k,r,cIdRit),Dividi(nFatte,aRitPerRigo(k,r,cIdFreq))),3)
aV(8) = qNum
aV(9) = Round(GetPresTeo(k ,1),3)
aV(10) = Round (qNum -aV(9),3)
aV(11) = Round(Dividi(qNum,(qNum + CDbl(aV(9)))),3)
aV(12) = aPresTotPerRigo(k)
aV(13) = Round(GetPresTeo(k , qRuote),3)
aV(14) = Round (aPresTotPerRigo(k)-aV(13),3)
aV(15) = Round(Dividi(aPresTotPerRigo(k),(aPresTotPerRigo(k) + CDbl(aV(13)))),3)
aV(16) = Round(PresenzeTeoriche ( k+1 ,nFatte ,1),3)
aV(17) = Round( aRitPerRigo(k,r,cIdFreq) - aV(16) ,3)
aV(18) = Round(Dividi(aRitPerRigo(k,r,cIdFreq),(aRitPerRigo(k,r,cIdFreq) + CDbl(aV(16)))),3)
Call AddRigaTabella(aV)
End If
Next
End If
Next
Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
Call Scrivi("Fine : " & GetInfoEstrazione(Fin))
Call SetTableWidth("100%")
Call CreaTabellaOrdinabile(2)
End Sub
Function GetPresTeo(Rit,qRuote)
GetPresTeo = 5* qRuote *(17/18)^Rit
End Function
Function PresenzeTeoriche(Ritardo,Estrazioni ,Ruote)
' funzione by Joe
Dim P,Q
Dim Att,Pre
P = 5 * Ruote ' Estratti
Q = 17/18 ' Probabilità Contraria
Att = 1 - Q^Ritardo 'Attuale
Pre = 1 - Q^(Ritardo - 1)'Precedente
PresenzeTeoriche = (P*Estrazioni*(Att - Pre))
End Function
 

micro__

Advanced Member >PLATINUM<
#66
JOE91
Ciao Joe ,
la mia era una domanda solo per capire perche mi aspettavo che mettendo una sola estrazione
al ritardo 0 (ritardo 1) dovesse dare 5 estratti teorici ..
La tua riflessione mi suggerisce la risposta.
No. E' ad un altro livello.
Le presenze (di colonna 4) sono risultati di numeri "teoricamente" giocati.
Quindi se giochi i 5 numeri (o la cinquina sincrona) a ritardo zero ...
PURTROPPO non ottieni 5 estratti.
Però teoricamente ognuno si essi ha una probabilità su 18 di essere estratto.
Cioè ... 5 su 18 che con la calcolatrice è = 0.2777.......77778
che è lo stesso valore restituituito dalla formula per il ritardo zero
senza gli arrotondamenti, come ho elencato al messaggio #64.
Quindi ... è ulteriore conferma.
Per il controllo dello script ... rimando a domattina.
Buona Serata a tutte/i.
#67
ILEGEND
Ciao a tutti
Un saluto ai prof luigi e joe
Forse parlate di due statistiche distinte.
Non so se entrambe le formule siano corrette.
Penso che a Ritardo zero empiricamente oltre che teoricamente ci saranno 5 estratti. 5 posizioni occupate.
Ora chiedo a luigi se usando la sua funzione di potesse calcolare la presenza teorica fra il ritardo 0-17.
Sono curioso di capire quante sarebbero le presenze teoriche.
Poi vi spiego anche perché . Ciao notte a tutt
#68
JOE91
Ciao I legend.
Si è giusto quello che scrivi.
Sono statistiche diverse anche se hanno caratteri comuni.
Sono estratti (a ritardo zero) 5 numeri dei 90 presenti nell'urna.
Questi 5 sono sul Tabellone Analitico. (a ritardo zero).
Ora questo calcolo successivo riguarda questi 5 ...
che sono una piccola parte di 90.
Ma a ritardo più elevato ...
sul Tabellone Analitico sono meno ancora di 5.
#69
LUIGIB
Ciao Legend . Basta fare la somna dei valori...
#70
JOE91
Ciao Luigi ...
Lo script considera una estrazione in meno rispetto ai limiti, che elenca nella prima parte.
Cioè prima della tabella.
Pertanto il numero delle estrazioni 5248 invece di 5249
dal 03/09/1945 al 11/08/2016 fa si che il numero degli estratti,
risultante sia inferiore di 5 estratti.
Questo conteggio differente dal "quanto" dovrebbe essere,
poi si riflette (negativamente) sui risultati finali ...
che diversamente sarebbero "giusti".
photo13458-jpg.1997209 (351×555) (lottoced.com)
#71
LUIGIB
Ciao Joe grazie della spiegazione e del controllo. Per fare la correzione bisogna agire nella sub gestioneoutput e modificare il calcolo per la variabile nfatte a questo punto sommando 1. Dato che sono in ufficio se puoi fare tu la correzione e riportare lo script sul forum ...senno lp faro io stasera.. ciao
#72
JOE91
Ciao Luigi.
Anche su questo mi permetto di dissentire.
E' un errore più subdolo e riguarda i conteggi, non l'output.
Infatti il calcolo è fatto sull'iterazone
For k = Ini + 1 To Fin
E' questo "+1" che sotttrae una estrazione dal totale di quante dovrebbero essere.
Anch'io devo verificare meglio "cosa cambia" ... e perchè tu abbia impostato lo script così.
Anche se è evidente che volevi affrancarti da un "-1" in cui non c'erano estratti.
#73
LUIGIB
No no...quel +1 dipende dalla logica dello script .all estrazione ini calcola i ritardi dei 90 numeri da ini +1 in poi invece i ritardi dei 90 numeri li aggiorna..
 

micro__

Advanced Member >PLATINUM<
#74
JOE91
Ciao Luigi.
E' come dire che non mi hai convinto.
Ma non è colpa tua ... so d'essere cocciuto.
Ho preso il tuo script e vi ho apportato poche modifiche ...
e, per poter evidenziare alcune cose, l'ho "bloccato" ad alcune condizioni.
Eseguendolo vedi come esso calcoli un tabellone analitico ... ma poi,
elenca ma non conteggia gli estratti di queste prime estrazioni.
Con l'altro programma a paragone, come il tuo Tabellone Analitico (di Spaziometria)
ed è più facile vedere aggiunti 5 estratti alla prima estrazione,
5 alla seconda ... e così via man mano decrescendo (perchè aggiorna a run-time)
Qui si dovrà spostare il limite dell' archivio, di una estrazione alla volta ...
(Fin = 3950 / 3951 / 3952 / 3953 3954 ...)
per verificare che per le prime estrazioni ...
non sono conteggiati presenti gli estratti che in esse (ed in ogni caso) sono caduti.
Dunque secondo me è un errore.
Ho anche estratto e riscritto un piccolo script con la parte principale di ciò che avevo fatto.
Esso si muove più similmente a quanto detto ed
elenca per la ruota di Firenze dopo le prime 5 estrazioni:
Firenze 3950_3954
R Rit Fr.
0 0 6
1 3 5
2 2 5
3 1 5
4 0 4
....
Un secondo test lo puoi fare così:
* esegui lo script originale ... SENZA questi vincoli. (altrimenti evidentemente ottieni Zero... Meglio, Uno)
* trasferiscri l'output in excel.
* In Excel esegui la somma delle Presenze (Frequenze) elencate in colonna 4.
Essendo estratti 5 numeri in ogni estrazione ... dividi questo Totale Presenze per 5,
ed ottieni il numero delle Estrazioni conteggiate.
Rileverai che sono "meno" estrazioni di quante dovrebbero essere.
Mentre come vedi per contro nella tabellina sopra 6 + 5 + 5 + 5 + 4 = 25
25 / 5 = 5 Estrazioni.
In attesa di un tuo riscontro ... porgo cordiali saluti a tutte/i.
Option Explicit
Dim cIdRit,cIdRitMax,cIdFreq,cMaxRigo
Sub Main
Dim Ini,Fin
Dim r,k,e,n,nRit,nSfald,bMostraSoloRigheConNumeri
Dim aBRuote(12)
ReDim aRt(1)
ReDim aNumRuota(5)
Dim aBNumRuota
Dim T
'If MsgBox("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
bMostraSoloRigheConNumeri = False
'End If
'Call ScegliRuote (Nothing,aBRuote)
aBRuote(3) = True
cMaxRigo = 250
cIdRit = 0
cIdRitMax = 1
cIdFreq = 2
T = Timer
ReDim aRitPerRigo(cMaxRigo,12,2)
Ini = 3950 'EstrazioneIni
Fin = 3954 'EstrazioneFin
For r = 1 To 12
If r <> 11 Then
If aBRuote(r) Then
ReDim aN(90)
aRt(1) = r
Call GetRitardoEstratti(aRt,Ini,aN)
For k = Ini + 1 To Fin
Call GetArrayNumeriRuota(k,r,aNumRuota)
If aNumRuota(1) > 0 Then
For nRit = 0 To cMaxRigo
aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
Next
For e = 1 To 5
nRit =(aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) - 1)
If nRit > aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) Then
aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) = nRit
End If
aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) = 0
aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) = aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) + 1
Next
aBNumRuota = ArrayNumeriToBool(aNumRuota)
For n = 1 To 90
If aBNumRuota(n) Then
aN(n) = 0
Else
aN(n) = aN(n) + 1
End If
Next
End If
Next
End If
End If
Call AvanzamentoElab(1,12,r)
Next
Scrivi "Tempo Elab : " & Timer - T
T = Timer
Call GestioneOutput(Ini,Fin,bMostraSoloRigheConNumeri,aBRuote,aRitPerRigo)
Scrivi "Tempo crea tabella : " & Timer - T
End Sub
Sub GestioneOutput(Ini,Fin,bMostraSoloRigheConNumeri,abRuote,aRitPerRigo)
Dim r,k,e,n,sNum,bValida,qNum,nFatte,qRuote
nFatte = Fin -(Ini)
ReDim aV(18)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ru"
aV(6) = "Numeri"
aV(7) = "IC"
aV(8) = "QR"
aV(9) = "QT"
aV(10) = "QR-QT"
aV(11) = "A"
aV(12) = "QRRu"
aV(13) = "QTRu"
aV(14) = "QRRu -QTRu"
aV(15) = "ARu"
aV(16) = "PT"
aV(17) = "Freq-PT"
aV(18) = "A"
ReDim aPresTotPerRigo(cMaxRigo)
Call GeneraAnaliticoTurbo(Fin)
For r = 1 To 12
If abRuote(r) Then qRuote = qRuote + 1
Next
For k = 0 To cMaxRigo
For r = 1 To 12
If abRuote(r) Then
If r <> 11 Then
For e = 1 To 5
n = TabelloneAnaliticoTurbo(k,r,e)
If n > 0 Then
aPresTotPerRigo(k) = aPresTotPerRigo(k) + 1
End If
Next
End If
End If
Next
Next
Messaggio "Creazione tabella"
DoEventsEx
Call InitTabella(aV)
For r = 1 To 12
If r <> 11 And abRuote(r) Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,r,cIdRit)
aV(3) = aRitPerRigo(k,r,cIdRitMax)
aV(4) = aRitPerRigo(k,r,cIdFreq)
aV(5) = NomeRuota(r)
sNum = ""
qNum = 0
For e = 1 To 5
n = TabelloneAnaliticoTurbo(k,r,e)
If n > 0 Then
qNum = qNum + 1
sNum = sNum & n & "."
End If
Next
sNum = RimuoviLastChr(sNum,".")
bValida = False
If bMostraSoloRigheConNumeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
aV(7) = Round(Dividi(aRitPerRigo(k,r,cIdRit),Dividi(nFatte,aRitPerRigo(k,r,cIdFreq))),3)
aV(8) = qNum
aV(9) = Round(GetPresTeo(k ,1),3)
aV(10) = Round (qNum -aV(9),3)
aV(11) = Round(Dividi(qNum,(qNum + CDbl(aV(9)))),3)
aV(12) = aPresTotPerRigo(k)
aV(13) = Round(GetPresTeo(k , qRuote),3)
aV(14) = Round (aPresTotPerRigo(k)-aV(13),3)
aV(15) = Round(Dividi(aPresTotPerRigo(k),(aPresTotPerRigo(k) + CDbl(aV(13)))),3)
aV(16) = Round(PresenzeTeoriche ( k+1 ,nFatte ,1),3)
aV(17) = Round( aRitPerRigo(k,r,cIdFreq) - aV(16) ,3)
aV(18) = Round(Dividi(aRitPerRigo(k,r,cIdFreq),(aRitPerRigo(k,r,cIdFreq) + CDbl(aV(16)))),3)
Call AddRigaTabella(aV)
End If
Next
End If
Next
Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
Call Scrivi("Fine : " & GetInfoEstrazione(Fin))
Call SetTableWidth("100%")
Call CreaTabellaOrdinabile(1,1)
End Sub
Function GetPresTeo(Rit,qRuote)
GetPresTeo = 5* qRuote *(17/18)^Rit
End Function
Function PresenzeTeoriche(Ritardo,Estrazioni ,Ruote)
' funzione by Joe
Dim P,Q
Dim Att,Pre
P = 5 * Ruote ' Estratti
Q = 17/18 ' Probabilità Contraria
Att = 1 - Q^Ritardo 'Attuale
Pre = 1 - Q^(Ritardo - 1)'Precedente
PresenzeTeoriche = Round(P*Estrazioni*(Att - Pre))
End Function
#75
LUIGIB
Ciao Joe ora qui dal cell non possa cobtrolkare pero sai bene che ho assoluta fiducia del tuo operato. Hai le competenxe lottologiche e sei in grado di leggere e capire i miei script .
Lo script ha la sua struttura e la sua logica per cercare di renderlo il piu veloce possibile se hai fatto le correzioni necessarie fino a renderlo esatto direi che siamo apposto...stasera comunque vedo anche io...ciao
#76
JOE91
Ciao Luigi. Non è ... proprio così.
Tu sai essere più preparato e veloce (ed anche giovane mentalmente) di me,
quindi, ho una soluzione mia ... ma è molto differente dal tuo script.
Una crasi, di queste diverse espressioni, non la vedo semplice.
Specie per me, che dovrei farmi carico del tuo script molto più difficile.
Comunque sia, NON ho corretto il tuo script.
Ho cercato di renderlo capace di rendere più evidenti alcune sue criticità.
(Per la verità, non ho neanche cercato di capirlo e studiarlo.)
Dicevo che "ibridare" le soluzioni che abbiamo realizzato è un pochino difficile,
soprattutto per me perchè essi sono molto differenti.
E' nache vero poi ... che anche il mio lavoro ha avuto bisogno di molte correzioni in corso d'opera.
Quindi il "mio complessivo" ... è funzionante ma ha errori, manca dello storico ...
ed in sintesi anch'eeso si fa prima a buttarlo ... che correggerlo.
Dunque la mia proposta è questa:
Ti invierei questo mio script nuovo e funzionante che ti è facilissimo da leggere
ed anche da capire perchè è sia piccolo che molto semplice.
Cosicchè puoi provare ad interfacciarlo con la tue ruotine di input e di output
utilizzando ... se ritieni i suoi calcoli ed i risultati necessari a completare in modo corretto la tabella.
Oppure alla peggio ti potà essere utile riferimento.
Cordiali saluti.
Sub Main
Dim T
Dim Ini,Fin,Es
Dim R,E,P
Dim N,X
T = Timer
Dim K,KK 'Controllo Crociato
Ini = 3950 : Fin = EstrazioneFin
For R = FI_ To FI_ : If R = 11 Then R = 12 : Ini = 7440
K = 0 : KK = 0
ReDim RE(90),RR(250),PR(250),STO(250)
Messaggio NomeRuota(R)
AvanzamentoElab 1,12,R
Scrivi NomeRuota (R),True
For N = 1 To 90 : RE(N) = - 1 : Next 'Inizializzazione
For Es = Ini To Fin
K = K + 1
AvanzamentoElab Ini,Fin,Es
For N = 1 To 90 : RE(N) = RE(N) + 1 : Next 'Ritardo Estratti
For N = 0 To 250 : RR(N) = RR(N) + 1 : Next 'Ritardo di Rigo
For P = 1 To 5
E = Estratto(Es,R,P)
If STO(RE(E)) < RR(RE(E)) Then STO(RE(E)) = RR(RE(E)) - 1
RR(RE(E)) = 0 : PR(RE(E)) = PR(RE(E)) + 1
RE(E) = - 1
Next
Next
Scrivi "Rigo Rit Sto Pres. Teor.",True
For N = 0 To 250
If RR(N) <> RR(250) Then
X = PresenzeTeoriche(N+1, Fin-Ini+1)
Scrivi FormatSpace(N,4) & Chr(9) & RR(N) & Chr(9) & STO(N) & Chr(9) & PR(N) & Chr(9) & X
KK = KK + PR(N)
End If
Next
If K = KK / 5 Then Scrivi : Scrivi "Script By Joe",True
Scrivi
Next
Scrivi Round(Timer - T,1) & " sec."
End Sub
Function PresenzeTeoriche(Ritardo,Estrazioni)
Dim P,Q
Dim Att,Pre
P = 5 ' Estratti
Q = 17/18 ' Probabilità Contraria
Att = 1 - Q^Ritardo 'Attuale
Pre = 1 - Q^(Ritardo - 1)'Precedente
PresenzeTeoriche = Round(P*Estrazioni*(Att - Pre))
End Function
 

micro__

Advanced Member >PLATINUM<
#77
LUIGIB
Ok Joe , lo guardero e cerchero di capire .. prima di vedere il tuo script per non essere influenzato
vorrei inquadrare meglio "l'errore" presente nel mio.
Quindi ti chiedo conferma. Il mio script calcola male la quantita di estrazioni analizzate ? Solo quello ?
Da notare che questo mio ultimo script da risultati coincidenti con quelli che avevo postato in precedenza ..
#78
JOE91
Ciao Luigi.
Principalmente ... riguarda il conteggio delle presenze.
Ho già provato a descrivere questa cosa al messaggio 74.
Li c'è anche una versione modificata del tuo script per evidenziare ...
come nella prima parte ed all'inizio del periodo analizzato,
NON elenca e NON conta i numeri presenti in queste prime estrazioni.
Se comunque posso essere utile ... con ulteriori esempi,
provo a spiegarmi diversamente.
Buona serata a tutte/i.
#82
LUIGIB
Joe91;n1997378 ha scritto:
Ciao Luigi.
non sono conteggiati presenti gli estratti che in esse (ed in ogni caso) sono caduti.
Dunque secondo me è un errore.
....
....
.....
Essendo estratti 5 numeri in ogni estrazione ... dividi questo Totale Presenze per 5,
ed ottieni il numero delle Estrazioni conteggiate.
Rileverai che sono "meno" estrazioni di quante dovrebbero essere.
Mentre come vedi per contro nella tabellina sopra 6 + 5 + 5 + 5 + 4 = 25
25 / 5 = 5 Estrazioni.
In attesa di un tuo riscontro ... porgo cordiali saluti a tutte/i.
ciao Joe , allora nel week end ho ovviamente piu tempo , prima i tuoi messaggi li avevo letti solo col cellulare e non li avevo capiti bene, ora li ho letti con piu attenzione-
Allora il mio script conteggia gli sfaldamenti dei "righi" non le cadute dei numeri .. per frequenza il mio script intende quante volte la tale riga si sia sfaldata , se cade un solo numero o per ipotesi cadessero tutti e 5 (con la stessa estrazione) sempre 1 conteggia .. quella riga si è sfaldata una volta sola anche se sono usciti 5 numeri (due cinquine ugali una appresso all'altra eheheh ).. in pratica devo conteggiare le cadute dei numeri non gli sfaldamenti delle righe ?
Credo sia possibile e per me è del tutto indifferente faccio come dite voi ..
fammi sapere
#83
ILEGEND
Ciao luigi
Forse sono vicino alla metà,
qualsiasi decisione prendiate lasceresti entrambi gli script?
Vorrei studiarli bene.
Grazie.
Ciao ben tornato dalle ferie.
 

micro__

Advanced Member >PLATINUM<
#84
JOE91
Ciao Luigi.
Scusa se non ho scritto prima, non è per mancanza di volontà ...
ma sto forum funziona veramente malissimo.
Chiusa perentesi.
Ho ricordato una cosa che avevi scritto e nella quale potrebbere risiedere
la spiegazione. Ma è diversa da quest'ultima.
Ed è forse anche ... più compatibile e/o idonea a svelare
il perchè delle differenze riscontrate.
Quindi vorrei controllare bene prima di azzardare una spiegazione
o proporre un eventuale soluzione.
Spero domattina con più calma anche se una cosa vorrò verificarla già subito.
#85
LUIGIB
certo Joe , se ti riferisci a quando avevamo parlato di Ini +1 forse avevo capito male la domanda.
Ripeto lo script per come l'avevo interpretato per frequenza interpreta e conteggia gli sfaldamenti delle righe non quanti numeri cadono ad ogni estrazione.
Ciao Legend certoche li lascio ma vedrai che cambiano di molto poco ..
#86
JOE91
Ciao Luigi.
Si certamente è sul +1 ... ma non è solo quello.
Una prima conferma c'è buona-buona,
Come da immagine ho allineato il rendiconto del tuo script.
Però prima di esporre "il come" voglio verificara ancora delle cose.
Intanto potrebbe essere anche utile il parere di I legend
che essendosi fatto carico di capire l'uno e l'altro script ...
forse ha colto le differenze che sto cercando di confermare.
Buona serata a tutte/i.
photo13463-jpg.1997703 (589×438) (lottoced.com)
#87
LUIGIB
Aspetta non confondiamo il povero Legend .. a ben guardare mi sono accorto di una cosa.
Lo script precedente a questo ultimo che avevo postato fa esattamente come ti ho detto ovvero per sfaldamento conteggia sempre 1 a prescindera da quanti numeri siano caduti nella stessa estr.
Questo ultimo script invece non fa come ho detto ed è un errore perche volevo lo facesse.
Questo ultimo script ineffetti conteggia +1 per ogni numero caduto al tale ritardo.
Pure io mi riservo di controllare meglio questo ultimo script .. ci si sente domani ...
#88
LUIGIB
Ciao Joe , allora alla luce delle tue ossservazioni specie del messaggio 74 mi sono accorto che lo script come avevi detto anche tu calcolava male le frequenze.
ora questo nuovo script che posto penso sia corretto , esso gestisce opzionalmente il calcolo della frequenza sia conteggiando +1 per ogni numero caduto sia conteggiando una sola volta il rigo sfaldato (anche se su questo cadono piu di 1 numero contemporaneamente).
Quindi con la prima opzione ammettendo di conteggiare una sola estrazione e che in questa estrazione ci siano 3 numeri caduti a ritardo differente e 2 a ritardo uguale la somma delle frequenze delle righe interessate darà 5 , mentre con l'opzione 2 dara 4.
Quindi facciamo tabula rasa di tutti i risutati esposti dagli script precedenti e vediamo se è corretto quest'ultimo che posto.
Confido nelle tue verifiche
Ciao
Option Explicit
Dim cIdRit,cIdRitMax,cIdFreq,cMaxRigo
Sub Main
Dim Ini,Fin
Dim r,k,e,n,nRit,nSfald,bMostraSoloRigheConNumeri
Dim aBRuote
ReDim aRt(1)
ReDim aNumRuota(5)
Dim aBNumRuota
Dim nTipoCalcFrq
Dim T
If MsgBox("Mostrare solo le righe alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
bMostraSoloRigheConNumeri = True
End If
nTipoCalcFrq = scegliTipoCalcFrq
Call ScegliRuote(Nothing,aBRuote)
cMaxRigo = 250
cIdRit = 0
cIdRitMax = 1
cIdFreq = 2
T = Timer
ReDim aRitPerRigo(cMaxRigo,12,2)
Ini = EstrazioneIni
Fin = EstrazioneFin
For r = 1 To 12
If r <> 11 Then
If aBRuote(r) Then
ReDim aN(90)
aRt(1) = r
Call GetRitardoEstratti(aRt,Ini-1,aN)
For k = Ini To Fin
Call GetArrayNumeriRuota(k,r,aNumRuota)
ReDim aBRit(cMaxRigo)
If aNumRuota(1) > 0 Then
For nRit = 0 To cMaxRigo
aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
Next
For e = 1 To 5
nRit =(aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) - 1)
If nRit > aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) Then
aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) = nRit
End If
If nTipoCalcFrq =0 Then
aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) = 0
aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) = aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) + 1
Else
If Not aBRit(aN(aNumRuota(e))) Then
aBRit(aN(aNumRuota(e))) = True
aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) = 0
aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) = aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) + 1
End If
End If
Next
aBNumRuota = ArrayNumeriToBool(aNumRuota)
For n = 1 To 90
If aBNumRuota(n) Then
aN(n) = 0
Else
aN(n) = aN(n) + 1
End If
Next
End If
Next
End If
End If
Call AvanzamentoElab(1,12,r)
Next
Scrivi "Tempo Elab : " & Timer - T
T = Timer
Call GestioneOutput(Ini,Fin,bMostraSoloRigheConNumeri,aBRuote,aRitPerRigo)
Scrivi "Tempo crea tabella : " & Timer - T
End Sub
Sub GestioneOutput(Ini,Fin,bMostraSoloRigheConNumeri,abRuote,aRitPerRigo)
Dim r,k,e,n,sNum,bValida,qNum,nFatte,qRuote
nFatte = Fin -(Ini)
ReDim aV(18)
aV(1) = "Rigo"
aV(2) = "Ritardo"
aV(3) = "RitardoMax"
aV(4) = "Frequenza"
aV(5) = "Ru"
aV(6) = "Numeri"
aV(7) = "IC"
aV(8) = "QR"
aV(9) = "QT"
aV(10) = "QR-QT"
aV(11) = "A"
aV(12) = "QRRu"
aV(13) = "QTRu"
aV(14) = "QRRu -QTRu"
aV(15) = "ARu"
aV(16) = "PT"
aV(17) = "Freq-PT"
aV(18) = "A"
ReDim aPresTotPerRigo(cMaxRigo)
Call GeneraAnaliticoTurbo(Fin)
For r = 1 To 12
If abRuote(r) Then qRuote = qRuote + 1
Next
For k = 0 To cMaxRigo
For r = 1 To 12
If abRuote(r) Then
If r <> 11 Then
For e = 1 To 5
n = TabelloneAnaliticoTurbo(k,r,e)
If n > 0 Then
aPresTotPerRigo(k) = aPresTotPerRigo(k) + 1
End If
Next
End If
End If
Next
Next
Messaggio "Creazione tabella"
DoEventsEx
Call InitTabella(aV)
For r = 1 To 12
If r <> 11 And abRuote(r) Then
For k = 0 To cMaxRigo
aV(1) = k
aV(2) = aRitPerRigo(k,r,cIdRit)
aV(3) = aRitPerRigo(k,r,cIdRitMax)
aV(4) = aRitPerRigo(k,r,cIdFreq)
aV(5) = NomeRuota(r)
sNum = ""
qNum = 0
For e = 1 To 5
n = TabelloneAnaliticoTurbo(k,r,e)
If n > 0 Then
qNum = qNum + 1
sNum = sNum & n & "."
End If
Next
sNum = RimuoviLastChr(sNum,".")
bValida = False
If bMostraSoloRigheConNumeri Then
If sNum <> "" Then bValida = True
Else
bValida = True
End If
If bValida Then
aV(6) = sNum
aV(7) = Round(Dividi(aRitPerRigo(k,r,cIdRit),Dividi(nFatte,aRitPerRigo(k,r,cIdFreq))),3)
aV(8) = qNum
aV(9) = Round(GetPresTeo(k,1),3)
aV(10) = Round(qNum - aV(9),3)
aV(11) = Round(Dividi(qNum,(qNum + CDbl(aV(9)))),3)
aV(12) = aPresTotPerRigo(k)
aV(13) = Round(GetPresTeo(k,qRuote),3)
aV(14) = Round(aPresTotPerRigo(k) - aV(13),3)
aV(15) = Round(Dividi(aPresTotPerRigo(k),(aPresTotPerRigo(k) + CDbl(aV(13)))),3)
aV(16) = Round(PresenzeTeoriche(k + 1,nFatte,1),3)
aV(17) = Round(aRitPerRigo(k,r,cIdFreq) - aV(16),3)
aV(18) = Round(Dividi(aRitPerRigo(k,r,cIdFreq),(aRitPerRigo(k,r,cIdFreq) + CDbl(aV(16)))),3)
Call AddRigaTabella(aV)
End If
Next
End If
Next
Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
Call Scrivi("Fine : " & GetInfoEstrazione(Fin))
Call SetTableWidth("100%")
Call CreaTabellaOrdinabile(2)
End Sub
Function GetPresTeo(Rit,qRuote)
GetPresTeo = 5* qRuote *(17/18)^Rit
End Function
Function PresenzeTeoriche(Ritardo,Estrazioni,Ruote)
' funzione by Joe
Dim P,Q
Dim Att,Pre
P = 5 * Ruote ' Estratti
Q = 17/18 ' Probabilità Contraria
Att = 1 - Q^Ritardo 'Attuale
Pre = 1 - Q^(Ritardo - 1)'Precedente
PresenzeTeoriche =(P*Estrazioni*(Att - Pre))
End Function
Function scegliTipoCalcFrq
Dim aV
aV = Array ("Incrementa per ogni caduta" ,"Incrementa allo sfaldamento del rigo")
scegliTipoCalcFrq = ScegliOpzioneMenu (aV , 0)
End Function
#89
JOE91
Aspetta non confondiamo il povero Legend .. a ben guardare mi sono accorto di una cosa.
Lo script precedente a questo ultimo che avevo postato fa esattamente come ti ho detto ovvero per sfaldamento conteggia sempre 1 a prescindera da quanti numeri siano caduti nella stessa estr.
Questo ultimo script invece non fa come ho detto ed è un errore perche volevo lo facesse.
Questo ultimo script ineffetti conteggia +1 per ogni numero caduto al tale ritardo.
Pure io mi riservo di controllare meglio questo ultimo script .. ci si sente domani ...
Ok ... facciamo un punto fermo come riferimento ... anche per evitare possibili incomprensioni.
Io qui di seguito mi riferisco al tuo script cioè quello per una sola ruota
presente al messaggio #65 ed al mio, che ti ho proposto al messaggio #76.
I controlli che ho fatto con essi per la ruota Nazionale come ho proposto ieri sera,
al messaggio #86 sono stati confermati adesso identici a quelli prodotti da L8,
a parità di intervallo di estrazioni 7440-7449.
Cioè per le prime 10 estrazioni della Nazionale.
Ovvero ancora ... il tuo script modificato, il mio, ed L8
così calcolerebbero tutti e 3 nello stesso identico modo.
Ora prima di considerare questa tua nuova proposta di conteggio ...
quella più orientata a far soggetto, il rigo, piuttosto che,
il lottrone (i lottroni) che casualmente vi transita (transitano).
Vorrei ancora cercare di dare una mia interpretazione del perchè
e del come ho modificato il tuo script.
Ovvero ... la ragione per cui, già ora, senza queste avremmo (o avremo) 2 risultati differenti.
Ci possono essere 2 considerazioni relative al formarsi del Tabellone Analitico.
Una PRIMA CERCA DI COSTRUIRE UNA SITUAZIONE ad una determinata estrazione
ed E' L'IPOTESI DEL TUO SCRIPT NON MODIFICATO.
Una seconda considera NULLA ... qualsiasi cosa eventualmente sia già avvenuta ...
ed INIZIA a conteggiare "DA ZERO".
QUESTO è quanto qui "detto" e succederebbe nei tre programmi ... resi alllineati.
Perchè ho controllato partendo dalla Nazionale?
Semplice. Perchè essa è la ruota che non una storia pregressa.
Poio sono passato a controllare tutte le rimanenti altre 10 ruote.
Dunque le modifiche principali al tuo script (che elenco
ma non propongo in script prima di aver letto le tue/vostre considerazioni)
sarebbero piuttosto semplici ...eliminare la ricostruzione dei ritardi iniziali.
Iniziare la costruzione del Tabellone Analitico con i relativi conteggi ... da Zero
Partendo a conteggiare da Es = EstrazioneInizio.
Naturalmente è modifica molto semplice perchè lo script conteggia
già da sè gli estratti caduti nel rigo, e le poche, altre, modifiche
sono di poco conto, quasi solo estetiche e/o per praticità.
Cordiali saluti a tutte/i.
PS: Ok .. non tormento Ilegend.
Però ci fosse qualcuno che ha l'altro programma citato tra i primi messaggi ...
sarebbe gradito ed importante avere un riscontro, su come esso interpreta e calcola
questi dati statistici.
Dunque ringrazio sin d'ora chi vorrà aiutarci a completando ed integrando con essi, questo confronto.
#90
LUIGIB
#91
JOE91
Leggo il tuo mesaggio (#88 CHE NON ERA PRESENTE)
e se necesario ... rispondo nel merito. cerco di completare la risposta.
Grazie.
#92
JOE91
Ok ... confermo quanto avevo scritto.
La differenza che è ancora presente è quella relativa al come si forma il Tabellone Analitico.
All'estrazione 7440 della Nazionale (ove non c'è storia pregressa)
i conteggi sono esatti o meglio coincidenti.
Se si iniziasse ad 8000 o a 9000 sarebbero e sono un pochino diversi.
Cordiali saluti.
photo13469-jpg.1997781 (599×550) (lottoced.com)
#93
LUIGIB
ciao Joe , verissimo il mio script parte calcolando lo stato del tab analitico alla prima estrazioen del range di analisi.
Fare le opportune modifiche per cambiare questo comportamento come hai detto qualche mess fa è banale ..
saluti a tutti
#94
JOE91
photo13470-jpg.1997823 (711×369) (lottoced.com)
 

claudio8

Premium Member
Grazie, Micro.
Se hai letto il tread avrai capito che il ritardo di rigo ha senso per un prodotto finale giocabile, se viene considerato ruota per ruota. E non su tutte le ruote esistenti BA.... NZ come se fossero unicaruota (nella tabella in cui hai inserito la colonna dei ritardi di rigo, tu consideravi contrmporaneamente 11 ruote, dico bene?)
Sei daccordo che il ritardo di rigo va considerato ruota per ruota?
Saluti
 

micro__

Advanced Member >PLATINUM<
Grazie, Micro.
Se hai letto il tread avrai capito che il ritardo di rigo ha senso per un prodotto finale giocabile, se viene considerato ruota per ruota.
Certo, l'importante resta sempre la valutazione nel transito dei soli terminatori, meglio se ruota per ruota.

E non su tutte le ruote esistenti BA.... NZ come se fossero unica ruota (nella tabella in cui hai inserito la colonna dei ritardi di rigo, tu consideravi contrmporaneamente 11 ruote, dico bene?)
Si, solitamente il ritardo di rigo si considera per le 11 ruote.
Sei daccordo che il ritardo di rigo va considerato ruota per ruota?
Saluti
si, perfetto!

Grazie a te claudio8!
saluti
micro
 

Ultima estrazione Lotto

  • Estrazione del lotto
    venerdì 26 aprile 2024
    Bari
    65
    67
    84
    22
    77
    Cagliari
    38
    09
    83
    18
    20
    Firenze
    76
    24
    78
    30
    40
    Genova
    50
    56
    61
    90
    57
    Milano
    87
    21
    15
    12
    79
    Napoli
    13
    66
    86
    25
    49
    Palermo
    72
    60
    68
    74
    09
    Roma
    23
    15
    43
    07
    75
    Torino
    82
    79
    31
    41
    64
    Venezia
    66
    89
    18
    80
    41
    Nazionale
    04
    24
    10
    69
    73
    Estrazione Simbolotto
    Genova
    33
    03
    16
    35
    32
Alto