B
Option Explicit
Sub Main
Dim r,n,f,i,L,ii,fr,q,j,y,Total,perc,det,nr,z,ct,dal,al,k,rr,kn,Totalgen,retfre,riga,xc,Lastda,Lasta
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''campi di input
'''1 ruote
'''2 lunghetta periodo estrazioni
'''3 vuoi dettaglio conteggi?
ReDim aRuote(11),rt(12) ' array che contiene i numeri delle ruote selezionate
If ScegliRuote(aRuote) > 0 Then ' apro la finestra con la lista per selezionare le ruote e se torna maggiore di 0
' vuol dire che sono state selezionate N ruote
' leggo l'array che ora contiene la selezione dell'utente
For k = 1 To UBound(aRuote)
If aRuote(k) > 0 Then
kn = kn + 1
rt(kn) = aRuote(k)
End If
Next
End If
'''''
f = EstrazioneFin
L = InputBox("Lunghetta periodo estraz.( 8 - 11 - 17 - 23 ) ",,11)
det = InputBox("Vuoi Dettaglio? S/N ",,"N")
ReDim unite(750)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''loop per ogni ruote
For rr = 1 To kn
ReDim fre(750)
r = rt(rr)
i = 3950 : Total = 0
'''''''''''''
For q = 1 To 750
ii = i + L
Messaggio(SiglaRuota(r) & " " & i & ":" & ii)
If i >= f Or ii >= f Then Exit For
''' Scrivi i & " : " & ii
For n = 1 To 90
fr = EstrattoFrequenzaTurbo(r,n,i,ii)
fre(fr) = fre(fr) + 1 '''' singola ruota
Next
Total = 0
For y = 0 To 7
If det = "S" Then Scrivi y & "..." & Round(fre(y)/90,7) & "........" & fre(y)
Total = Total + fre(y) '''' totale x ruota
Next
i = i + L + 1
Next
'''---------------------------------------------------------------------------
Scrivi
ReDim atitoli2(6),avalori2(6)
' preimposto i titoli delle colonne
atitoli2(1) = " classe Freq. "
atitoli2(2) = " Reali Pr."
atitoli2(3) = " coeff.Distr."
atitoli2(4) = " Numeri Presenza Media"
atitoli2(5) = " Qta Nr.Reali Presenti"
atitoli2(6) = "Eccesso/deficit"
' ' inizializzo la tabella
SetTableWidth("95%")
Call InitTabella(atitoli2,2,"center",1.5,5,"Arial")
ColoreTesto(2)
Scrivi "Ruota di " & NomeRuota(r),1
ColoreTesto(0)
Scrivi "Totale......" & Total,1
Scrivi "Periodo dalla 3950 alla estr.n. " & EstrazioneFin,1
Scrivi "Distribuzione nelle 7 classi di frequenza in cicli di durata.." & L + 1 & " estrazioni",1
Scrivi "Classe = 0 Numeri mai Usciti nel periodo scelto in altre parole quantità numeri con ritardo superiore a quello richiesto ",1
'''''''''''''''''
Totalgen = Totalgen + Total
''''loop 90 numeri per calcolo distribuzione attuale
ReDim pre(90)
dal = ii -(L*2) : al = ii - L
Scrivi "Ultimo ciclo periodo: " & dal & " : " & al,1
For nr = 1 To 90
pre(nr) = EstrattoFrequenzaTurbo(r,nr,dal,al)
Next
'''''''
For y = 0 To 7
perc = Round(fre(y)/Total,6)
avalori2(1) = y
avalori2(2) = fre(y)
avalori2(3) = perc
ct = 0
For z = 1 To 90
If Int(pre(z)) = y Then
ct = ct + 1
End If
Next
avalori2(5) = ct
''''''''''''
If perc > 0 Then avalori2(4) = Round(perc * 90,6) Else avalori2(4) = 0 End If
avalori2(6) = Int(avalori2(5)) - Int(avalori2(4))
'''''''''''''''accumula valori per ruote unite
unite(y) = unite(y) + fre(y)
''''''''''''''
Call AddRigaTabella(avalori2,Bianco_,"center",2)
''' ''''''''''
Next
Call CreaTabella
Scrivi
''''''
Next
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
ColoreTesto(1)
Scrivi " P r o s p e t t o S o m m a R i e q u i l i b r i o C o e f f . ( D i s t r i b u z i o n e M e d i a ) a R u o t e U n i t e",1
ColoreTesto(0)
ReDim atitoli2(4),avalori2(4)
' preimposto i titoli delle colonne
atitoli2(1) = " classe Freq. "
atitoli2(2) = " Reali Pr."
atitoli2(3) = " coeff.Distr."
atitoli2(4) = " Numeri Presenza Media"
' ' inizializzo la tabella
SetTableWidth("95%")
Call InitTabella(atitoli2,1,"center",1.5,5,"Arial")
Scrivi "Totale Generale Ruote Unite..." & Totalgen,1
''''''''''''''''''''''riepilogo generale con ruote unite
For y = 0 To 7
perc = Round(unite(y)/Totalgen,6)
avalori2(1) = y
avalori2(2) = unite(y)
avalori2(3) = perc
''''''''''''
If perc > 0 Then avalori2(4) = Round(perc * 90,6) Else avalori2(4) = 0 End If
'''''''''''''''
Call AddRigaTabella(avalori2,Bianco_,"center",2)
Next
Call CreaTabella
Scrivi
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Scrivi "C a l c o l o R i e p i l o g o D i s t r i b u z i o n e M e d i a C l a s s i F r e q u e n z a a R u o t e U n i t e ",1
ReDim atitoli2(6),avalori2(6)
' preimposto i titoli delle colonne
atitoli2(1) = " classe Freq. "
atitoli2(2) = " Reali Pr."
atitoli2(3) = " coeff.Distr."
atitoli2(4) = " Numeri Presenza Media"
atitoli2(5) = " Qta Nr.Reali Presenti"
atitoli2(6) = "Eccesso/deficit"
' ' inizializzo la tabella
SetTableWidth("95%")
Call InitTabella(atitoli2,2,"center",1.5,5,"Arial")
''''loop calcolo della distribuzione media per ruote unite
ReDim fre(750),an(1)
i = 3950 : Total = 0
'''''''''''''
For q = 1 To 750
ii = i + L
Messaggio("Ruote Unite " & i & ":" & ii)
If i >= f Or ii >= f Then Exit For
For n = 1 To 90
an(1) = n
Call StatisticaFormazioneTurbo(an,rt,1,,,,retfre,i,ii)
fr = retfre
fre(fr) = fre(fr) + 1 ''''ruote unite
pre(n) = fr '''''Presenze x classe ultimo ciclo
Lastda = i :Lasta = ii
Next
Total = 0
For y = 0 To 15
If det = "S" Then Scrivi y & "..." & Round(fre(y)/90,7) & "........" & fre(y)
Total = Total + fre(y) '''' totale x ruote unite
Next
i = i + L + 1
Next
'''---------------------------------------------------------------------------
For y = 0 To 15
perc = Round(fre(y)/Total,6)
avalori2(1) = y
avalori2(2) = fre(y)
avalori2(3) = perc
ct = 0
For z = 1 To 90
If Int(pre(z)) = y Then
ct = ct + 1
End If
Next
avalori2(5) = ct
''''''''''''
If perc > 0 Then avalori2(4) = Round(perc * 90,6) Else avalori2(4) = 0 End If
avalori2(6) = Int(avalori2(5)) - Int(avalori2(4))
''''''''''''''
Call AddRigaTabella(avalori2,Bianco_,"center",2)
''' ''''''''''
Next
Scrivi " Periodo Estraz.n. 3950 : " & Lasta,1
Call CreaTabella
Scrivi
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''presenze teorico/reali per frequenza '''''''''''''''''''''''''''''''''''''''''''''''''''
'''accumula valori di frequenza su ruote unite (situaz.ultima estrazionefin)
Scrivi "Riepilogo Cicli Teorici/reali su Ruote Unite scelte - Periodo " & Lastda & " : " & Lasta & " / " & DataEstrazione(Lasta),1
ColoreTesto(1)
For r = 1 To UBound(aRuote)
Scrivi SiglaRuota(aRuote(r)),1
Next
ColoreTesto(0)
ReDim sitfre(90,2),an(1)
For n = 1 To 90
an(1) = n
Call StatisticaFormazioneTurbo(an,rt,1,,,,retfre,Lastda,Lasta)
fr = retfre
sitfre(n,1) = Format2(n) & "."
sitfre(n,2) = retfre
Next
'''''stampa
For y = 0 To 15
riga = "Classe.." & y & "..."
xc = 0
For z = 1 To 90
If Int(sitfre(z,2)) = y Then
xc = xc + 1
riga = riga & Format2(sitfre(z,1)) & "."
End If
Next
Scrivi "Qt.nr.." & Format2(xc) & "...." & riga,1
Next
Scrivi "Tempo di Elaborazione : " & TempoTrascorso,1
End Sub
Option Explicit
Sub Main
Dim r,n,f,i,L,ii,fr,q,j,y,Total,perc,det,nr,z,ct,dal,al,k,rr,kn,Totalgen,retfre,riga,xc,Lastda,Lasta,retrit,retritmax,sor,ritcic
Dim p,rae,ultimaestr,ultimo,retrite,a,qt,retidestr,retestratti,e,ctd,pres,Lastr
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''campi di input
'''1 ruote
'''2 lunghetta periodo estrazioni
'''3 vuoi dettaglio conteggi?
ReDim aRuote(11),rt(12) ' array che contiene i numeri delle ruote selezionate
If ScegliRuote(aRuote) > 0 Then ' apro la finestra con la lista per selezionare le ruote e se torna maggiore di 0
' vuol dire che sono state selezionate N ruote
' leggo l'array che ora contiene la selezione dell'utente
For k = 1 To UBound(aRuote)
If aRuote(k) > 0 Then
kn = kn + 1
rt(kn) = aRuote(k)
End If
Next
End If
'''''
f = EstrazioneFin
L = InputBox("Lunghetta periodo estraz.( 8 - 11 - 17 - 23 - 35 - 53 ) a metà ciclo ( 14 - 26 - 31 - 41 ) ",,11)
det = InputBox("Vuoi Dettaglio? S/N ",,"N")
sor = CInt(InputBox("Scegli Sorte Ultimo Ciclo",,1))
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''calcola condizione di presenze nel ciclo di 12 sulle ruote ed elenca per rilevare quelli con minori presenze di numeri usciti 2 o più volte
ReDim Lastruote(12)
For Lastr = 1 To 12
ctd = 0
For n = 1 To 90
pres = EstrattoFrequenzaTurbo(Lastr,n,f + 1 - 12,f)
'''''
If pres >= 2 Then
ctd = ctd + 1
Lastruote(Lastr) = ctd
End If
''''
Next
Next
Scrivi "Ruote con Nr.aventi doppie uscite nelle ult.12 estrazioni",1,1,4,9,3
For e = 1 To 12
Scrivi SiglaRuota(e) & "...Nr. con Presenza doppia..." & Lastruote(e),1
Next
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
ReDim unite(750)
''''loop per ogni ruote
For rr = 1 To kn
ReDim fre(750)
r = rt(rr)
i = 3950 : Total = 0
'''''''''''''
For q = 1 To 750
ii = i + L
Messaggio(SiglaRuota(r) & " " & i & ":" & ii)
If i >= f Or ii >= f Then Exit For
'''''''' Scrivi i & " : " & ii
For n = 1 To 90
fr = EstrattoFrequenzaTurbo(r,n,i,ii)
fre(fr) = fre(fr) + 1 '''' singola ruota
Next
Total = 0
For y = 0 To 7
If det = "S" Then Scrivi ii & "...." & y & "..." & Round(fre(y)/90,7) & "........" & fre(y)
Total = Total + fre(y) '''' totale x ruota
Next
i = i + L + 1
Next
'''---------------------------------------------------------------------------
Scrivi
ReDim atitoli2(6),avalori2(6)
' preimposto i titoli delle colonne
atitoli2(1) = " classe Freq. "
atitoli2(2) = " Reali Pr."
atitoli2(3) = " coeff.Distr."
atitoli2(4) = " Numeri Presenza Media"
atitoli2(5) = " Qta Nr.Reali Presenti"
atitoli2(6) = "Eccesso/deficit"
' ' inizializzo la tabella
SetTableWidth("95%")
Call InitTabella(atitoli2,2,"center",1.5,5,"Arial")
ColoreTesto(2)
Scrivi "Ruota di " & NomeRuota(r),1
ColoreTesto(0)
Scrivi "Totale......" & Total,1
Scrivi "Periodo dalla 3950 alla estr.n. " & EstrazioneFin,1,1,4,9,3
Scrivi "Distribuzione nelle 7 classi di frequenza in cicli di durata.." & L + 1 & " estrazioni",1
Scrivi "Classe = 0 Numeri mai Usciti nel periodo scelto in altre parole quantità numeri con ritardo superiore a quello richiesto ",1
'''''''''''''''''
Totalgen = Totalgen + Total
''''loop 90 numeri per calcolo distribuzione attuale
ReDim pre(90)
dal = ii -(L*2) : al = ii - L
Scrivi "Ultimo ciclo periodo: " & dal - 1 & " : " & al - 1,1
For nr = 1 To 90
pre(nr) = EstrattoFrequenzaTurbo(r,nr,dal - 1,al - 1)
Next
'''''''
For y = 0 To 7
perc = Round(fre(y)/Total,6)
avalori2(1) = y
avalori2(2) = fre(y)
avalori2(3) = perc
ct = 0
For z = 1 To 90
If Int(pre(z)) = y Then
ct = ct + 1
End If
Next
avalori2(5) = ct
''''''''''''
If perc > 0 Then avalori2(4) = Round(perc * 90,6) Else avalori2(4) = 0 End If
avalori2(6) = Int(avalori2(5)) - Int(avalori2(4))
'''''''''''''''accumula valori per ruote unite
unite(y) = unite(y) + fre(y)
''''''''''''''
Call AddRigaTabella(avalori2,Bianco_,"center",2)
''' ''''''''''
Next
Call CreaTabella
Scrivi
''''''
Next
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
ColoreTesto(1)
Scrivi " P r o s p e t t o S o m m a R i e q u i l i b r i o C o e f f . ( D i s t r i b u z i o n e M e d i a ) a R u o t e U n i t e",1
ColoreTesto(0)
ReDim atitoli2(4),avalori2(4)
' preimposto i titoli delle colonne
atitoli2(1) = " classe Freq. "
atitoli2(2) = " Reali Pr."
atitoli2(3) = " coeff.Distr."
atitoli2(4) = " Numeri Presenza Media"
' ' inizializzo la tabella
SetTableWidth("95%")
Call InitTabella(atitoli2,1,"center",1.5,5,"Arial")
Scrivi "Totale Generale Ruote Unite..." & Totalgen,1
''''''''''''''''''''''riepilogo generale con ruote unite
For y = 0 To 7
perc = Round(unite(y)/Totalgen,6)
avalori2(1) = y
avalori2(2) = unite(y)
avalori2(3) = perc
''''''''''''
If perc > 0 Then avalori2(4) = Round(perc * 90,6) Else avalori2(4) = 0 End If
'''''''''''''''
Call AddRigaTabella(avalori2,Bianco_,"center",2)
Next
Call CreaTabella
Scrivi
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Scrivi "C a l c o l o R i e p i l o g o D i s t r i b u z i o n e M e d i a C l a s s i F r e q u e n z a a R u o t e U n i t e ",1
ReDim atitoli2(7),avalori2(7)
' preimposto i titoli delle colonne
atitoli2(1) = " classe Freq. "
atitoli2(2) = " Reali Pr."
atitoli2(3) = " coeff.Distr."
atitoli2(4) = " Numeri Presenza Media"
atitoli2(5) = " Qta Nr.Reali Presenti uLT.Ciclo"
atitoli2(6) = "Eccesso/deficit"
atitoli2(7) = "Numeri"
' ' inizializzo la tabella
SetTableWidth("95%")
Call InitTabella(atitoli2,2,"center",1.5,5,"Arial")
''''loop calcolo della distribuzione media per ruote unite
ReDim fre(750),an(1)
i = 3950 : Total = 0
'''''''''''''
For q = 1 To 750
ii = i + L
Messaggio("Ruote Unite " & i & ":" & ii)
If i >= f Or ii >= f Then Exit For
'''''' Scrivi i & " / " & ii & "---- " & Lastda & " / " & Lasta
For n = 1 To 90
an(1) = n
Call StatisticaFormazioneTurbo(an,rt,1,,,,retfre,i,ii)
fr = retfre
fre(fr) = fre(fr) + 1 ''''ruote unite
pre(n) = fr '''''Presenze x classe ultimo ciclo
Lastda = i :Lasta = ii
Next
Total = 0
For y = 0 To 30
If det = "S" Then Scrivi y & "..." & Round(fre(y)/90,7) & "........" & fre(y)
Total = Total + fre(y) '''' totale x ruote unite
Next
i = i + L + 1
Next
'''---------------------------------------------------------------------------
For y = 0 To 30
ReDim frnum(60)
perc = Round(fre(y)/Total,6)
avalori2(1) = y
avalori2(2) = fre(y)
avalori2(3) = perc
ct = 0
For z = 1 To 90
If Int(pre(z)) = y Then
ct = ct + 1
frnum(ct) = Format2(z)
End If
Next
avalori2(5) = ct
avalori2(7) = StringaNumeri(frnum,".")
''''''''''''
If perc > 0 Then avalori2(4) = Round(perc * 90,6) Else avalori2(4) = 0 End If
avalori2(6) = Int(avalori2(5)) - Int(avalori2(4))
''''''''''''''
If avalori2(4) > 0 Then
Call AddRigaTabella(avalori2,Bianco_,"center",1)
End If
''' ''''''''''
Next
Scrivi " Periodo Estraz.n. 3950 : " & Lasta,1,1,4,9,3
Call CreaTabella
Scrivi
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''presenze teorico/reali per frequenza '''''''''''''''''''''''''''''''''''''''''''''''''''
'''accumula valori di frequenza su ruote unite (situaz.ultima estrazionefin)
ColoreTesto(2)
Scrivi "Riepilogo Cicli Teorici/reali su Ruote Unite scelte - Ultimo Ciclo Periodo " & Lastda & " : " & Lasta & " / " & DataEstrazione(al),1,1,4,9,3
Scrivi "Lunghezza ciclo...." & L + 1 & " Ritardi calcolati per la sorte.." & sor & " Ultima Estrazione in Archivio è........." & EstrazioneFin & " / " & DataEstrazione(EstrazioneFin),1
ColoreTesto(1)
For r = 1 To UBound(aRuote)
Scrivi NomeRuota(aRuote(r)),1
Next
ColoreTesto(1)
Scrivi "Qt.Nr..RComb./.XComb..Ult.Usc.Classe..FR...N u m e r i ",1
ColoreTesto(0)
ReDim sitfre(90,2),an(1)
For n = 1 To 90
an(1) = n
Call StatisticaFormazioneTurbo(an,aRuote,1,,,,retfre,Lastda,Lasta)
fr = retfre
sitfre(n,1) = Format2(n) & "."
sitfre(n,2) = retfre
Next
'''''stampa
For y = 0 To 30
ReDim nm(65)
riga = "Classe.." & Format2(y) & "..."
xc = 0 : ultimo = 0
For z = 1 To 90
If Int(sitfre(z,2)) = y Then
xc = xc + 1
riga = riga & Format2(sitfre(z,1)) & "."
nm(xc) = sitfre(z,1)
End If
Next
If sor = 1 Then
If xc > 0 Then
Call StatisticaFormazioneTurbo(nm,aRuote,sor,retrit,retritmax,,,3950,Lasta)
Else
retrit = 0 : retritmax = 0
End If
End If
'
If sor = 2 Then
If xc > 1 Then
Call StatisticaFormazioneTurbo(nm,aRuote,sor,retrit,retritmax,,,3950,Lasta)
Else
retrit = 0 : retritmax = 0
End If
End If
'''''''
'''calcola quando è uscito l'ultimo estratto
ReDim num(1)
For p = 1 To xc
num(1) = nm(p)
Call StatisticaFormazioneTurbo(num,aRuote,sor,retrite,,,,3950,Lasta)
ultimaestr = Lasta - retrite
If ultimaestr > ultimo Then
ultimo = ultimaestr
End If
Next
'''''''
If xc > 0 Then Scrivi Format2(xc) & " " & FormattaStringa(retrit,"000") & " / " & FormattaStringa(retritmax,"000") & "...." & ultimo & "...." & riga,1
Next
Scrivi
Scrivi "Attenzione potrebbe essere Iniziato un nuovo ciclo, quindi i ritardi possono essersi modificati",1,1,4,9,2
Scrivi "Con L impostazione di Lunghezza cicli immessa, Il ciclo Attuale è gia in corso da n.estraz.." & EstrazioneFin - Lasta,1,1,4,9,2
Scrivi : Scrivi "E s i t i N e l C i c l o A t t u a l e I n C o r s o D a E s t r a z i o n e n." & Lasta + 1,1,1,1,5,2
'''''''''esiti ciclo in corso
ColoreTesto(1)
Scrivi "Qt.Nr..RComb./.XComb..Ult.Usc.Classe..FR...N u m e r i ",1
ColoreTesto(0)
ReDim sitfre(90,2),an(1)
For n = 1 To 90
an(1) = n
Call StatisticaFormazioneTurbo(an,aRuote,1,,,,retfre,Lastda,Lasta)
fr = retfre
sitfre(n,1) = Format2(n) & "."
sitfre(n,2) = retfre
Next
'''''stampa
For y = 0 To 30
ReDim nm(65)
riga = "Classe.." & Format2(y) & "..."
xc = 0 : ultimo = 0
For z = 1 To 90
If Int(sitfre(z,2)) = y Then
xc = xc + 1
riga = riga & Format2(sitfre(z,1)) & "."
nm(xc) = sitfre(z,1)
End If
Next
If sor = 1 Then
If xc > 0 Then
Call StatisticaFormazioneTurbo(nm,aRuote,sor,retrit,retritmax,,,3950,Lasta)
Else
retrit = 0 : retritmax = 0
End If
End If
'
If sor = 2 Then
If xc > 1 Then
Call StatisticaFormazioneTurbo(nm,aRuote,sor,retrit,retritmax,,,3950,Lasta)
Else
retrit = 0 : retritmax = 0
End If
End If
'''calcola quando è uscito l'ultimo estratto
ReDim num(1)
For p = 1 To xc
num(1) = nm(p)
Call StatisticaFormazioneTurbo(num,aRuote,sor,retrite,,,,3950,Lasta)
ultimaestr = Lasta - retrite
If ultimaestr > ultimo Then
ultimo = ultimaestr
End If
Next
'''''''
If xc > 0 Then Scrivi Format2(xc) & " " & FormattaStringa(retrit,"000") & " / " & FormattaStringa(retritmax,"000") & "...." & ultimo & "...." & riga,1
'''verifica esiti
qt = EstrazioneFin - Lasta
For a = 1 To qt
Call VerificaEsitoTurbo(nm,aRuote,Lasta + a,sor,1,,,,retestratti,retidestr)
If retestratti <> "" Then
ColoreTesto(1)
Scrivi "---> Nr.usciti...." & retidestr & "..." & retestratti,1
ColoreTesto(0)
End If
Next
Next
'''''''
Scrivi: Scrivi "Tempo di Elaborazione : " & TempoTrascorso,1
End Sub
Option Explicit
Sub Main
Dim num(90,4),an(1),fre(50),ritardi(280,3),very(70)
Dim n,Ini,fine,K,kn,L,sor,retrit,retritmax,retfre,elenco,f,y,x,distr,tconc,nc,w,z,retestratti,retidestr
Dim dal,al,ritardo,h,rae,flt,fbt,flre,riep,a1,a2,a3,a4,da1,da2,da3,da4,f1,f2,f3,f4
Dim Listarit,aretritardi,aretidestr,qttot,qt,i,id,somrit,Totambo,raa,a,frequentot,ci1,ci2,ci3,ci4,c1,c2,c3,c4,c5,ci5
Dim Lastr,ctd,pres,e,ft,filtrovincenzo,m,mm
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''campi di input
'''1 ruote
'''2 lunghetta periodo estrazioni
ReDim aruote(11),rt(12) ' array che contiene i numeri delle ruote selezionate
If ScegliRuote(aruote) > 0 Then ' apro la finestra con la lista per selezionare le ruote e se torna maggiore di 0
' vuol dire che sono state selezionate N ruote
' leggo l'array che ora contiene la selezione dell'utente
For K = 1 To UBound(aruote)
If aruote(K) > 0 Then
kn = kn + 1
rt(kn) = aruote(K)
End If
Next
End If
'''''
fine = InputBox("Estrazione n.",,EstrazioneFin)
L = InputBox("Lunghetta periodo estraz.( 8 - 12 - 18 - 24 - 30 - 36 ",,12)
sor = CInt(InputBox("Scegli Sorte Ultimo Ciclo",,1))
tconc = CInt(InputBox("Previsione Tot. concorsi...",,6))
'''''''
'''calcola condizione di presenze nel ciclo di 12 sulle ruote ed elenca per rilevare quelle con minori presenze di numeri usciti 2 o più volte
ReDim Lastruote(12)
For Lastr = 1 To 12
ctd = 0
For n = 1 To 90
pres = EstrattoFrequenzaTurbo(Lastr,n,fine + 1 - 12,fine)
'''''
If pres >= 2 Then
ctd = ctd + 1
Lastruote(Lastr) = ctd
End If
''''
Next
Next
Scrivi "Ruote con Nr.aventi doppie uscite nelle ult.12 estrazioni - BEP-VINC-distribuzioneDet",1,1,4,9,3
For e = 1 To 12
Scrivi SiglaRuota(e) & "...Nr. con Presenza doppia..." & Lastruote(e),1
Next
Scrivi "----------------------------------------------------------------------------------------------",1:Scrivi
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Ini = fine + 1 - L
''''''''''''''''''''''''''''''''''periodi di frequenza suddivisione
a1 = fine: da1 = a1 - 257
a2 = da1 - 1 : da2 = da1 - 258
a3 = da2 - 1 : da3 = da2 - 258
a4 = da3 - 1 :da4 = da3 - 258
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Scrivi "Periodo: " & Ini & " / " & fine & "...Lunghezza ciclo.." & L & " - BEP-VINC-distribuzioneDet ",1
ColoreTesto(2)
For x = 1 To kn
Scrivi "Ruota...." & NomeRuota(rt(x)),1,1,4,9,3
Next
ColoreTesto(0)
Scrivi
Scrivi "Classe Fr Reali Distrib. N u m e r i ",1,,,,1
''''''''''calcola ritardi e frequenza distribuiti in classi
For n = 1 To 90
an(1) = n
Call StatisticaFormazioneTurbo(an,rt,sor,retrit,retritmax,,retfre,Ini,fine)
num(n,1) = n
num(n,2) = retrit
num(n,3) = retfre
fre(retfre) = fre(retfre) + 1
'''''''''''''''''''''''' ritardi vari + ult.10 ritardi
ritardi(retrit,1) = ritardi(retrit,1) + 1
ritardi(retrit,2) = ritardi(retrit,2) & Format2(n) & "."
Next
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
For f = 0 To 50
elenco = ""
For y = 1 To 90
If num(y,3) = f Then
elenco = elenco & Format2(num(y,1)) & "."
End If
Next
If fre(f) > 0 Then
distr = Round(fre(f) / 90,7)
Scrivi "Classe.." & Format2(f) & "....." & Format2(fre(f)) & "...." & distr & "....." & elenco,1,,,,1
End If
Next
Scrivi:Scrivi:ColoreTesto(2)
''''decadimento
Scrivi "Val.Teorici - Decadimento Nr nel ciclo richiesto Lungo " & L & " : " & Round((17/18)^L*90,2),1
Scrivi "Val.Teorici - Decadimento Nr nel ciclo richiesto.Futuro." & L + tconc & " : " & Round((17/18)^(L + tconc)*90,2),1
Scrivi "Val.Teorici - Totale Numeri previsti in uscita in " & tconc & " Conc. : " & Round((17/18)^L*90,2) - Round((17/18)^(L + tconc)*90,2),1
nc = tconc * 5
ColoreTesto(1)
Scrivi "In uscita previsti 50% dei Nr.." & Int(Round((17/18)^L*90,2) - Round((17/18)^(L + tconc)*90,2)) & " su " & tconc*5 & " Estratti Futuri e 90 nella Venus ",1
ColoreTesto(2)
Scrivi
Scrivi "Distribuzione dei " & tconc*5 & " Nr. che verrano estratti nei prossimi " & tconc & " Concorsi.",1
ColoreTesto(0)
Scrivi "Classe Fr Reali Previsti N u m e r i ",1,,,,1
For f = 0 To 50
elenco = ""
For y = 1 To 90
If num(y,3) = f Then
elenco = elenco & Format2(num(y,1)) & "."
End If
Next
If fre(f) > 0 Then
distr = Round(fre(f) / 90,2) * nc
Scrivi "Classe.." & Format2(f) & "......." & Format2(fre(f)) & "...." & distr & ".........." & elenco,1,,,,1
End If
Next
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
ReDim atitoli2(14),avalori2(14)
' preimposto i titoli delle colonne
atitoli2(1) = " Nr. "
atitoli2(2) = "R a E "
atitoli2(3) = "P12/5Cicli"
atitoli2(4) = "SommaRit10"
atitoli2(5) = "MedGann"
atitoli2(6) = "FreMTeo"
atitoli2(7) = "FreMReale"
atitoli2(8) = "Dif.MedioP"
atitoli2(9) = "FreBTeo"
atitoli2(10) = "FreBMdCentr."
atitoli2(11) = "Dif.Breve"
' atitoli2(12) = "Fre4PeriodPrec"
atitoli2(12) = " "
atitoli2(13) = "FreTot.Lungo"
atitoli2(14) = "Distrib.FreTot"
' ' inizializzo la tabella
SetTableWidth("100%")
Call InitTabella(atitoli2,2,"center",1.3,5,"Cambria")
Scrivi:Scrivi "I D E N T I F I C H I A M O L I ",1
dal = L : al = L + tconc :id = ""
Scrivi "T a b e l l o n e della Ruota di " & NomeRuota(rt(1)),1,2,3,2,3
Scrivi "dal Ritardo " & dal & " al Ritardo " & al,1
id = "Numeri..."
For h = 1 To 90
an(1) = h
Call StatisticaFormazioneTurbo(an,rt,1,retrit,,,retfre,3950,fine)
ritardo = retrit
frequentot = frequentot + retfre
If ritardo >= Int(dal) And ritardo <= Int(al) Then
id = id & Format2(h) & " - "
w = w + 1
very(w) = h
End If
Next
Scrivi id,1,4,4,9,2
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''' filtro vincenzo
''''''''''''''''''''riepilogo estratti con frequenze relative reali e teoriche
ColoreTesto(0): Scrivi:Scrivi "Riepilogo Estratti per dati frequenza reale e teoriche di Lungo (3950E:Oggi) (Campo FretotLungo) " & "Colore Arancio Sottofrequenti - Colore Verde Superfrequenti ",1
Scrivi "FreMReale = frequenza Medio Periodo(1032E) § FreBReale = frequenza Breve Periodo (258E)",1
Scrivi "1° tenendo In considerazione la ruota fra le 11, che fino a 12 estrazioni detiene il minor numero di doppie uscite",1
Scrivi "2° i numeri con 1 estrazione quelli che si sono presentati già 3 o 4 volte di seguito In cicli di 18 ecc. (vanno tolti dal gruppo da considerare)",1
Scrivi
'''''''''''''''''''''''''''''''''5 periodi di 12 conc.
c1 = fine: ci1 = c1 - 11
c2 = ci1 - 1 : ci2 = ci1 - 18
c3 = ci2 - 1 : ci3 = ci2 - 18
c4 = ci3 - 1 :ci4 = ci3 - 18
c5 = ci4 - 1 :ci5 = ci4 - 18
ReDim pr(5)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
For i = 1 To 90
rae = FormattaStringa(EstrattoRitardo(rt(1),i,3950,fine),"000") '''calcola frequenza Lungo teorica
pr(1) = EstrattoFrequenzaTurbo(rt(1),i,ci1,c1)
pr(2) = EstrattoFrequenzaTurbo(rt(1),i,ci2,c2)
pr(3) = EstrattoFrequenzaTurbo(rt(1),i,ci3,c3)
pr(4) = EstrattoFrequenzaTurbo(rt(1),i,ci4,c4)
pr(5) = EstrattoFrequenzaTurbo(rt(1),i,ci5,c5)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''' filtro vincenzo ( escludi 3-4 presenze consecutive > 0 )
ft = 0 : mm = 5
If pr(1) = 1 Then
For m = 1 To 5
If pr(mm) > 0 Then
ft = ft + 1
Else
ft = 0
End If
mm = mm - 1
Next
If ft <= 1 Then
filtrovincenzo = filtrovincenzo & Format2(i) & "."
End If
End If
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''ultimi 10 ritardi
Listarit = ""
ReDim nn(1)
nn(1) = i
Call ElencoRitardiTurbo(nn,rt,1,3950,fine,aretritardi,aretidestr)
qttot = UBound(aretritardi) - 1
qt = qttot - 10 : somrit = 0
For qt = qt + 1 To qttot
Listarit = Listarit & FormattaStringa(aretritardi(qt),"000") & "."
somrit = somrit + aretritardi(qt)
Next
ritardi(retrit,3) = Listarit
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''calcola media gannalyst x 89 ambi
Totambo = 0
For a = 1 To 90
If a <> i Then
raa = AmboRitardoTurbo(rt(1),i,a,3950,fine)
Totambo = Totambo + raa
End If
Next
avalori2(5) = Int(Totambo/ 89)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
avalori2(13) = qttot & "/" & frequentot & "/" & Int(frequentot/90)
avalori2(14) = Round(qttot / frequentot,7)
flt = Int(1032*(1/18) + .45)
fbt = Int(258*(1/18) + .45)
f1 = EstrattoFrequenzaTurbo(rt(1),i,da1,a1)
f2 = EstrattoFrequenzaTurbo(rt(1),i,da2,a2)
f3 = EstrattoFrequenzaTurbo(rt(1),i,da3,a3)
f4 = EstrattoFrequenzaTurbo(rt(1),i,da4,a4)
flre = EstrattoFrequenzaTurbo(rt(1),i,fine - 1032,fine)
'''prepara campi per tabella
avalori2(1) = Format2(i)
avalori2(2) = rae
avalori2(3) = num(i,3) & "/" & pr(1) & "-" & pr(2) & "-" & pr(3) & "-" & pr(4) & "-" & pr(5)
avalori2(4) = somrit
avalori2(6) = flt
avalori2(7) = flre
avalori2(8) = Format2(flre -(fbt*4))
avalori2(9) = fbt
avalori2(10) = Int((f1 + f2 + f3 + f4)/4)
avalori2(11) = Int((f1 + f2 + f3 + f4)/4) -(fbt)
avalori2(12) = " "
'''sottofrequenti sia di Lungo che di Breve periodo
If avalori2(8) <= 0 And avalori2(11) <= 0 Then
riep = riep & Format2(i) & "."
End If
Call AddRigaTabella(avalori2,Bianco_,"center",1)
Call SetColoreCella(8,RGB(229,229,229),vbBlack)
Call SetColoreCella(11,RGB(229,229,229),vbBlack)
If avalori2(8) <= 0 And avalori2(11) <= 0 Then
Call SetColoreCella(1,RGB(255,181,106),vbBlack)
End If
If qttot < Int(frequentot/90) Then
Call SetColoreCella(13,RGB(255,181,106),vbBlack)
Else
Call SetColoreCella(13,RGB(213,241,211),vbBlack)
End If
Next
'''''''''''''''''''''''''
Scrivi "Condizione Filtro : Numeri con 1 presenza nell'ultimo ciclo, ma escludi >= 3 consecutivi negli ultimi 5 cicli, ciclo attuale compreso ",1,1,4,9,2
Scrivi filtrovincenzo,1,2,3,2,2
''''''''''''''''''''
Call CreaTabellaOrdinabile(1,1,1,91)
''''''''''''''''''''verifica esiti numeri nel range ritardo richiesto
Scrivi "Verifica esiti numeri nel range ritardo richiesto",1
For z = 1 To tconc
Call VerificaEsitoTurbo(very,rt,fine + z,1,1,,,,retestratti,retidestr)
If retestratti <> "" Then
Scrivi "----> esito..." & retidestr & " colpo n." & retidestr - fine & "...." & retestratti,1
End If
Next
''''''''''''''''''''
Scrivi
End Sub