Novità

Per LuigiB

frankstone

Advanced Member >PLATINUM<
Ciao LuigiB,

Suggerisco questo funzione da introdurre in Spaziometria:

Spiegazione:

Ogni estrazione escono 5 n. per ogni ruota. Tale cinquina rimane in media 10 colpi in ritardo prima di assistere allo sfaldamento con l'uscita di uno dei 5.

prima di tutto aggiungo che è sicuro al 100% che uno dei 5 cinque esce in pochissimi colpi, e di conseguenza si fà l'analisi su 5 e non su 90.

La funzione che si potrebbe introdurre è:

Prendere la cinquina più in ritardo su una ruota.
Fare l'analisi numero per numero su:

Ultimi (es.10 ritardi) ognuno dei 5 numeri
Frequenza di ogni numero dei 5 nell'ultimo periodo ( es. Ultimo anno = 104 estrazioni)
N. colpi interrocorrenti tra un ritardo e l'altro
Quali posizioni determinate ha occupato ognuno dei 5 numeri negli ultimi ritardi.

Comunque se ti puo interessare, ma non hai tempo, si potrebbe cominciare a sviluppare questa funzione mettendo solo l'analisi di frequenza. e poi per
il resto si vedrà

Grazie per la tua attenzione
 
ciao ti ringrazio per il suggerimento questa cosa la vedrei bene fatta con gli script --- vedi i giocatori di lotto ho capito che sono proliferatori sani di idee le piu disparate ineffetti ... affinche la povera Spaziometria non diventi un programma senza fine e soprattutto un agglomerato di funzioni che poi nessuno capisce piu come si usano (gia succede ora) devo assolutamente vagliare molto bene cio che dive divetare una funzione del programma e cio che puo essere implementato con gli script.. vedro se posso dedicarmi a trasformare in script questa tua idea.
 
Ciao Luigi

Quello che dice frankstone, io lo quoto, e non al 100%, ma al 1000%.
Purtroppo risulta essere un impresa ciclopica per chi come me,
fino a poco tempo fa usava carta e penna e un po di excel.
In passato ci ho perso la vista per queste analisi, ma poi abbandonate
per ovvi motivi.
Si dici giusto, farlo con uno script, ma di questa portata,
chi ne è capace se non solo tu.
Io non saprei nemmeno come incominciarlo uno script del genere.
Comunque in questo genere di cose l'impatto visivo è importantissimo.

Ti spiego :

Quello di cui si parla è il Tabellone Analitico, che mostra la cinquina più
ritardata per ogni ruota, ma non solo la cinquina, ma anche la quartina,
la terzina e la coppia.
Fra queste formazioni le più interessanti sono ovviamente le cinquine e
le quartine, fra cui ci sono i numeri destinati ad uscire per forza di cose.
Come analizzare il tutto ?
Il problema è che ad ogni estrazione, il Tabellone Analitico cambia,
è sempre diverso.....
Ecco io vedo l'analisi del tabellone analitico come un unica entità,
Per fare un paragone efficace, io lo vedo come un estrazione,
Un tabellone analitico = un intera estrazione.
Quindi (sempre per come la vedo io), si dovrebbe costruire
un archivio composto da queste "estrazioni" che altro non sono
che tutti i tabelloni analitici che si sono formati fino adesso
ad ogni estrazione del lotto.

Adesso come adesso, se vorrei guardare il tabellone analitico
di 5 estrazioni fa, non c'è modo.
A meno che non cancello delle estrazioni....
Hai capito cosa intendo ?
Se volessi il tabellone analitico di 100 estrazioni fa,
dovrei cancellare 100 estrazioni per vederlo....

In finale, avere la possibilità di scattare una sorta
di "Foto ricordo" di ogni tabellone analitico per
poi fare le analisi e comparazioni.

La palla al mago......
 
bha baffo .. infondo quello che dice Frankston si riassume in questo

1) trovare la cinquina con ritardo piu alto che non ha ancora sfaldato
2) dei numeri che compongono la cinquina sapere : frequenza , ultimi ritardi ,colpi intercorsi tra un rit e l'altro , e poi le posizioni di sortita

tutte cose che si possono fare tranquillamente con gli script e che anzi ho gia fatto ora devo lavorarci ancora un po' percio non è ancora tempo di postarlo.
Riguardo al tabellone analitico mi sa che non ho capito ti risponderei che nel programma c'è basta cambiare estrtazione e lui ti fa il tabellone di quellìestrazione li , tu ti copi l'immagine e poi le stampi se le vuoi verificare toccando con mano ..
Ciao
 
Si, Luigi hai ragione, e che io sono abituato a guardare......

sai come sono fatto......:)


PS : andando in tabelloni e poi in tabellone analitico

io non lo trovo mica come si cambia l'estrazione.....

vedo solo " esegui"......
 
Bisogna cambiare l'estrazione nella classica barra....delle estrazioni (scusate il gioco di parole) :)
e poi cliccare su esegui
 
Bisogna cambiare l'estrazione nella classica barra....delle estrazioni (scusate il gioco di parole) :)
e poi cliccare su esegui

Adesso ho capito...........grazie.

Io non mi soffermavo troppo, vedevo esegui, ma.......

Cavolo, la vecchiaia si fa sentire..........:)
 
Ok LuigiB

Ok LuigiB

bha baffo .. infondo quello che dice Frankston si riassume in questo

1) trovare la cinquina con ritardo piu alto che non ha ancora sfaldato
2) dei numeri che compongono la cinquina sapere : frequenza , ultimi ritardi ,colpi intercorsi tra un rit e l'altro , e poi le posizioni di sortita

tutte cose che si possono fare tranquillamente con gli script e che anzi ho gia fatto ora devo lavorarci ancora un po' percio non è ancora tempo di postarlo.
Riguardo al tabellone analitico mi sa che non ho capito ti risponderei che nel programma c'è basta cambiare estrtazione e lui ti fa il tabellone di quellìestrazione li , tu ti copi l'immagine e poi le stampi se le vuoi verificare toccando con mano ..
Ciao

Si, era proprio quello che intendevo.

Prendo la cinquina in questione.

Poi prendo ogni numero della cinquina e lo analizzo per i parametri esposti.

Quello che mi aspetto di vedere, innanzitutto è che per frequenza, il numero che per esempio è uscito meno in un'anno è il più caldo, perchè in un'anno le medie di uscita
per ogni numero non supera statisticamente un x volte, è chiaro che se trovo due dei 5 numeri che sono usciti uno 13 volte l'altro 11 volte presumo che la mia ricerca
cadrà sugli altri 3 numeri che sono usciti di meno in un'anno. poi passo all'analisi delle pause sui ritardi (ciclicità).
Ma comunque stiamo parlando di soli 5 numeri e non di 90.
I passi successivi possono essere quelli di considerare questi 5 numeri dei capogiochi analizzandoli con altri dalla sortita probabile.
 
Si, era proprio quello che intendevo.

Prendo la cinquina in questione.

Poi prendo ogni numero della cinquina e lo analizzo per i parametri esposti.

Quello che mi aspetto di vedere, innanzitutto è che per frequenza, il numero che per esempio è uscito meno in un'anno è il più caldo, perchè in un'anno le medie di uscita
per ogni numero non supera statisticamente un x volte, è chiaro che se trovo due dei 5 numeri che sono usciti uno 13 volte l'altro 11 volte presumo che la mia ricerca
cadrà sugli altri 3 numeri che sono usciti di meno in un'anno. poi passo all'analisi delle pause sui ritardi (ciclicità).
Ma comunque stiamo parlando di soli 5 numeri e non di 90.
I passi successivi possono essere quelli di considerare questi 5 numeri dei capogiochi analizzandoli con altri dalla sortita probabile.



Un discorso che reputo molto interessante, ma da estendere anche alle quartine....
So che luigi sta facendo uno script, non vedo l'ora di vederlo.
Questa è una ricerca che sono anni che volevo mettere in pratica.
Su quei 5 numeri si possono fare diverse analisi molto fruttuose.....:)
 
si ma non scordatevi che insieme a quei cinque numeri nell'urna ci sono pure gli altri 85 :-) quindi dire che se ne analizzano solo 5 è esatto ma non è un vantaggio. ... eheh comunque per stasera credo che sia pronto cosi ci giocate.
 
ciao , ecco lo script


Codice:
Option Explicit
Class clsEstrazione
Dim aNum(5)
Dim mRuota
Dim mRitardo
Sub SetNum(iPos, Num)
        aNum(iPos) = Num
End Sub
Public Property Let Ruota(v)
        mRuota = v
End Property
Public Property Let Ritardo(v)
        mRitardo = v
End Property
Public Property Get Ritardo()
        Ritardo = mRitardo
End Property
Sub NormalizzaArrayNumPerFrq(aNumPerFrq)
    Dim k , j 

    For k = 1 To 5
        If Int(aNumPerFrq(k, 1)) = 0 Then
            For j = k + 1 To 5
                If Int(aNumPerFrq(j, 1)) <> 0 Then
                    aNumPerFrq(k, 1) = aNumPerFrq(j, 1)
                    aNumPerFrq(k, 2) = aNumPerFrq(j, 2)
                    aNumPerFrq(j, 1) = 0
                    aNumPerFrq(j, 2) = 0
                    Exit For
                End If
            Next
        End If
    Next
    
End Sub
Sub CreaStatEstratti(Inizio, Fine)
        Dim nFrq
        ReDim aRuote(1)
        Dim k, j, i, iPos
        Const nRitDaPrendere = 10
        aRuote(1) = mRuota
        ' frequenze
        ReDim aN(1)
        ReDim aNumPerFrq(5, 2)
        i = 0
        For k = 1 To 5
                If Int(aNum(k)) > 0 Then
                        i = i + 1
                        aN(1) = aNum(k)
                        Call StatisticaFormazione(aN, aRuote, 1, 0, 0, 0, nFrq, Inizio, Fine)
                        aNumPerFrq(i, 1) = aN(1)
                        aNumPerFrq(i, 2) = nFrq
                End If
        Next
        Call OrdinaMatrice(aNumPerFrq, -1, 2)
        Call NormalizzaArrayNumPerFrq(aNumPerFrq)
        
        '========================================================00
        ' elenco ritardi
        ReDim aValori(nRitDaPrendere, 16)
        i = 0
        iPos = 2
        For k = 1 To 5
                If Int(aNumPerFrq(k, 1)) > 0 Then
                        aN(1) = aNumPerFrq(k, 1)
                        ReDim aRetRitardi(0)
                        ReDim aReIdEstr(0)
                        Call ElencoRitardi(aN, aRuote, 1, 1, Fine, aRetRitardi, aReIdEstr)
                        For j = 1 To nRitDaPrendere
                                aValori(j, 1) = j - 1
                                i = UBound(aRetRitardi) - (j - 1)
                                If i > 0 Then
                                        aValori(j, iPos) = aRetRitardi(i)
                                        aValori(j, iPos + 1) = GetDiffColpi(aRetRitardi, i)
                                        aValori(j, iPos + 2) = GetPosSortita(aN(1), aReIdEstr(i) - aRetRitardi(i))
                                End If
                        Next
                        iPos = iPos + 3
                End If
        Next
        Call CreaTabStatistica(aNumPerFrq, aValori, Fine)
        Call GeneraGrafico(Fine)
End Sub
Function GetPosSortita(N, idEstr)
        Dim k
        For k = 1 To 5
                If Estratto(idEstr, mRuota, k) = N Then
                        GetPosSortita = k
                        Exit For
                End If
        Next
End Function
Function GetDiffColpi(aRitardi, j)
        Dim r
        If j > 1 Then
                GetDiffColpi = aRitardi(j) - aRitardi(j - 1)
        Else
                GetDiffColpi = "-"
        End If
End Function
Sub CreaTabStatistica(aN, aValori, Fine)
        Dim k, j, i, p
        Dim nRitMin, nRitMax
        ReDim aV(16)
        ReDim aColSpan(16)
        ReDim aColori(16)
        ReDim aColoreFont(16)
        Dim nColor
        For k = 1 To 16
                aColoreFont(k) = vbBlack
        Next
        For k = 4 To 16 Step 3
                aColoreFont(k) = vbRed
        Next
        Call Scrivi(FormatSpace(NomeRuota(mRuota), 112) & vbCrLf, True, , vbCyan)
        
        Call Scrivi("Formazione : " & StringaNumeriFormazione)
        Call Scrivi("Ritardo    : " & mRitardo)
        Call Scrivi
        aColori(1) = vbYellow
        For k = 2 To 14 Step 3
                If k Mod 2 = 0 Then
                        nColor = vbWhite
                Else
                        nColor = RGB(255, 255, 192)
                End If
                For j = k To (k + 2)
                        aColori(j) = nColor
                Next
        Next
        ' titolo prima riga contiene la ruota
        aV(1) = NomeRuota(mRuota)
        aColSpan(1) = 16
        For k = 2 To 16
                aColSpan(k) = 0
        Next
        Call InitTabella(aV, RGB(128, 128, 255), , 6, vbWhite, "Courier New", aColSpan)
        ' Seconda riga Intestazione colonne
        aV(1) = ""
        aV(2) = "Num": aV(4) = "Frq"
        aV(5) = "Num": aV(7) = "Frq"
        aV(8) = "Num": aV(10) = "Frq"
        aV(11) = "Num": aV(13) = "Frq"
        aV(14) = "Num": aV(16) = "Frq"
        aColSpan(1) = 1
        For k = 2 To 14 Step 3
                aColSpan(k) = 2
                aColSpan(k + 1) = 0
                aColSpan(k + 2) = 1
        Next
        aColori(1) = vbBlack
        Call AddRigaTabella(aV, aColori, , , , , aColSpan)
        ' terza riga frequenza dei numeri
        aV(1) = ""
        aColSpan(1) = 1
        i = 0
        For k = 2 To 14 Step 3
            i = i + 1
		If Int( aN(i, 1))> 0 Then

                aV(k) = aN(i, 1)
                aV(k + 1) = ""
                aV(k + 2) = aN(i, 2)
		Else
		    aV(k) = ""
                aV(k + 1) = ""
                aV(k + 2) = ""

      	End If  
	Next
        Call AddRigaTabella(aV, aColori, , 4, aColoreFont, , aColSpan)
        ' quarta riga intestazione valori di dettaglio
        aV(1) = "IdRitardo"
        i = 0
        For k = 2 To 14 Step 3
                i = i + 1
                aV(k) = "Ritardo"
                aV(k + 1) = "DiffColpi"
                aV(k + 2) = "Posizione"
        Next
        Call AddRigaTabella(aV, vbYellow)
        ' righe dei valori
        aColori(1) = vbYellow
        For k = 1 To UBound(aValori)
                For j = 1 To 16
                        aV(j) = aValori(k, j)
                Next
                Call AddRigaTabella(aV, aColori)
        Next
        ' righe di riepilogo
        For k = 1 To UBound(aColSpan)
                aColSpan(k) = 0
        Next
        aColSpan(1) = 16
        ReDim aV(16)
        ' prima riga titolo
        aV(1) = "RIEPILOGO RITARDI"
        Call AddRigaTabella(aV, vbYellow, , , , , aColSpan)
        ' seconda riga intestazione col
        aV(1) = "Fascia Rit."
        i = 0
        ReDim aColori(16)
        aColori(1) = vbYellow
        For k = 1 To 5
                i = ((k - 1) * 3) + 2
                aV(i) = "Da Rit"
                aV(i + 1) = "A Rit"
                aV(i + 2) = "Quantità"
                aColori(i) = RGB(223, 223, 223)
                aColori(i + 1) = RGB(223, 223, 223)
                aColori(i + 2) = vbWhite
        Next
        Call AddRigaTabella(aV, vbYellow)
        ' righe dei valori
        nRitMin = -1
        ReDim aV(16)
        Do While nRitMax < 220
                nRitMin = nRitMin + 1
                nRitMax = (nRitMin - 1) + 18
                aV(1) = aV(1) + 1
                For k = 1 To 5
                        i = ((k - 1) * 3) + 2
                        aV(i) = nRitMin
                        aV(i + 1) = nRitMax
                        aV(i + 2) = CalcolaPresNellaFasciaRit(nRitMin, nRitMax, i, aValori)
                Next
                nRitMin = nRitMax
                Call AddRigaTabella(aV, aColori)
        Loop
        ' prima riga titolo
        aV(1) = "RIEPILOGO POSIZIONI"
        Call AddRigaTabella(aV, vbYellow, , , , , aColSpan)
        ' seconda riga intestazione col
        ReDim aColSpan(16)
        aV(1) = "Posizione"
        i = 0
        aColSpan(1) = 1
        For k = 1 To 5
                i = ((k - 1) * 3) + 2
                aColSpan(i) = 3
                aV(i) = "Presenze"
                aV(i + 1) = ""
                aV(i + 2) = ""
        Next
        Call AddRigaTabella(aV, vbYellow, , , , , aColSpan)
        ' righe dei valori
        ReDim aColori(16)
        aColori(1) = vbYellow
        For p = 1 To 5
                aV(1) = p & "°"
                For k = 1 To 5
                        i = ((k - 1) * 3) + 2
                        aV(i) = CalcolaPresNellaPos(p, i + 2, aValori)
                        aV(i + 1) = ""
                        aV(i + 2) = ""
                        aColori(i) = vbWhite
                        aColori(i + 1) = vbWhite
                        aColori(i + 2) = vbWhite

                Next
                Call AddRigaTabella(aV, aColori, , , , , aColSpan)
        Next
        ' prossima uscita
        ' prima riga titolo
        ReDim aColSpan(16)
        aColSpan(1) = 16
        aV(1) = "USCITE SUCCESSIVE ALL'ULTIMA ESTRAZIONE ANALIZZATA "
        Call AddRigaTabella(aV, vbYellow, , , , , aColSpan)
        ' seconda riga
        aColSpan(1) = 1
        ReDim aV(16)
        aV(1) = "Uscita"
        For k = 1 To 5
                i = ((k - 1) * 3) + 2
                aColSpan(i) = 2
                aColSpan(i + 1) = 0
                aColSpan(i + 2) = 1
                aV(i) = "Colpi"
                aV(i + 1) = ""
                aV(i + 2) = "Pos"
        Next
        Call AddRigaTabella(aV, vbYellow, , , , , aColSpan)
        ' prossime 3 uscite
        ReDim aV(16)
        ReDim aProssimeUscite(5, 3, 1)
        Call AlimentaArrayProssimeUscite(aN, aProssimeUscite, Fine, 3)
        For p = 1 To 3
                aV(1) = p
                For k = 1 To 5
                        i = ((k - 1) * 3) + 2
                        aV(i) = aProssimeUscite(k, p, 0)
                        aV(i + 1) = ""
                        aV(i + 2) = aProssimeUscite(k, p, 1)
                Next
                Call AddRigaTabella(aV, aColori, , , , , aColSpan)
        Next
        Call CreaTabella
End Sub
Sub AlimentaArrayProssimeUscite(aN, aProssimeUscite, Fine, nQuscite)
        Dim k, p, e, idEstr, nUscite, nColpi
        Dim nEstrTot
        nEstrTot = EstrazioniArchivio
        For k = 1 To 5
                nUscite = 0
                nColpi = 0
                If aN(k, 1) <> 0 Then
                        For idEstr = Fine + 1 To nEstrTot
                                nColpi = nColpi + 1
                                For e = 1 To 5
                                        If Estratto(idEstr, mRuota, e) = aN(k, 1) Then
                                                nUscite = nUscite + 1
                                                aProssimeUscite(k, nUscite, 0) = nColpi
                                                aProssimeUscite(k, nUscite, 1) = e
                                                Exit For
                                        End If
                                Next
                                If nUscite = nQuscite Then Exit For
                        Next
                End If
        Next
End Sub
Function CalcolaPresNellaPos(pos, i, aValori)
        Dim k, p
        p = 0
        For k = 1 To UBound(aValori)
                If aValori(k, i) = pos Then
                        p = p + 1
                End If
        Next
        CalcolaPresNellaPos = p
End Function
Function CalcolaPresNellaFasciaRit(nRitMin, nRitMax, i, aValori)
        Dim k, p
        p = 0
        For k = 1 To UBound(aValori)
                If aValori(k, i) >= nRitMin And aValori(k, i) <= nRitMax Then
                        p = p + 1
                End If
        Next
        CalcolaPresNellaFasciaRit = p
End Function
Function StringaNumeriFormazione()
        Dim k, s
        For k = 1 To 5
                s = s & Iif(aNum(k) <> 0, aNum(k), "..") & " "
        Next
        StringaNumeriFormazione = "[" & s & "]"
End Function
Sub CalcolaPresenzeNeiCicli(Num, Fine, aPresenze, nQCicli)
        Dim k, i
        Dim nInizio
        ReDim aN(1)
        ReDim aRt(1)
        Const cLenCiclo = 18
        ReDim aPresenzeTmp(nQCicli)
        aRt(1) = mRuota
        nInizio = Fine + 1
        i = 0
        Do While nInizio > 1
                aN(1) = Num
                i = i + 1
                nInizio = nInizio - cLenCiclo
                If nInizio < 0 Then nInizio = 1
                aPresenzeTmp(i) = SerieFreq(nInizio, (nInizio - 1) + cLenCiclo, aN, aRt, 1)
                If i = nQCicli Then Exit Do
        Loop
        ReDim aPresenze(nQCicli)
        For k = 1 To i
                aPresenze((i + 1) - k) = aPresenzeTmp(k)
        Next
End Sub
Sub GeneraGrafico(Fine)
        Dim k, j
        Const cQCicli = 10
        ReDim aColori(5)
        aColori(1) = vbBlue
        aColori(2) = vbCyan
        aColori(3) = vbRed
        aColori(4) = vbMagenta
        aColori(5) = vbGreen
        Call PreparaGrafico("Grafico frequenza per gli ultimi " & cQCicli & " cicli da 18", 0, cQCicli, 0, 10, 1, 1)
        For k = 1 To 5
                If aNum(k) <> 0 Then
                        ReDim aPres(0)
                        Call CalcolaPresenzeNeiCicli(aNum(k), Fine, aPres, cQCicli)
                        ReDim aV(cQCicli, 2)
                        For j = 1 To cQCicli
                                aV(j, 1) = j
                                aV(j, 2) = aPres(j)
                        Next
                        Call DisegnaLineaGrafico(aV, aColori(k), "Numero " & aNum(k))
                End If
        Next
        ' scrive grafico nell'output
        Call InserisciGrafico
End Sub


End Class
Sub Main
	Dim Fine
	Dim CollCinquine
	Dim nEstrPerCalcFrq
	Dim nClasse
	Dim nFrzPerRt
	nEstrPerCalcFrq = CInt(InputBox("Quantita estrazioni per calcolo frequenza","",104))
	Fine = EstrazioneFin
	ReDim aTabAnalitico(0)
	nClasse = ScegliDaMenu("Classe formazione",5)
	nFrzPerRt = ScegliDaMenu("Formazioni da rilevare per ruota",1)
	If nClasse > 0 And nFrzPerRt > 0 And nEstrPerCalcFrq > 0 Then
		Call ScriviInformazioni(nEstrPerCalcFrq,nClasse,nFrzPerRt,Fine)
		Call AlimentaGrigliaEstr(aTabAnalitico,Fine)
		Call CreaTabAnalitico(aTabAnalitico)
		Call AlimentaCollCinquine(CollCinquine,aTabAnalitico,nFrzPerRt,nClasse)
		Call EseguiStatistica(CollCinquine,nEstrPerCalcFrq,Fine)
		If MsgBox("Mostrare il tabellone analitico ?",vbQuestion + vbYesNo) = vbYes Then
			Call CreaTabellone(aTabAnalitico,Fine)
		End If
	End If
End Sub
Sub ScriviInformazioni(nEstrPerCalcFrq,nClasse,nFrzPerRt,Fine)
	Dim s
	s = "La seguente statistica analizza per ogni ruota le  " & nFrzPerRt
	s = s & " formazioni composte da " & nClasse & " numeri" & vbCrLf
	s = s & "dal ritardo piu alto che non si sono ancora sfaldate,"
	s = s & " esaminando e fornendo i dati statistici per " & vbCrLf
	s = s & "i numeri che le compongono." & vbCrLf
	s = s & "Le formazioni vengono mostrate in ordine decrescente di ritardo." & vbCrLf
	s = s & "All'interno della tabella statistica i numeri sono disposti ordinati per frequenza decrescente." & vbCrLf
	Call Scrivi(String(150,"*"),True)
	Call Scrivi(s,True)
	Call Scrivi(String(150,"*"),True)
	Call Scrivi
	s = "Data di rilevamento Tabellone Analitico     : " & GetInfoEstrazione(Fine)
	Call Scrivi(s,True)
	s = "Estrazioni esaminate per calcolo freqenza   : " & nEstrPerCalcFrq
	Call Scrivi(s,True)
	s = "Ricerca formazioni di classe                : " & nClasse
	Call Scrivi(s,True)
	Call Scrivi(String(150,"*"),True)
	Call Scrivi
End Sub
Sub CreaTabellone(aTabAnalitico,fine)
	Dim k,i,r
	ReDim aV(57)
	ReDim aColSpan(57)
	ReDim aColori(57)
	Dim idPrimaRiga,idEstr
	Dim nColor
	Call Messaggio("Output TabAnalitico in corso ...")
	i = 2
	aColori(1) = RGB(255,255,192)
	aColori(2) = vbYellow
	For r = 1 To 11
		For k = 1 To 5
			i = i + 1
			If r Mod 2 = 0 Then
				nColor = RGB(255,255,192)
			Else
				nColor = vbWhite
			End If
			aColori(i) = nColor
		Next
	Next
	aColSpan(1) = 57
	aV(1) = "TABELLONE ANALITICO"
	Call InitTabella(aV,vbCyan,,6,,"Courier New",aColSpan)
	aV(1) = ""
	aV(2) = ""
	i = 0
	For k = 3 To 56 Step 5
		i = i + 1
		aV(k) = NomeRuota(Iif(i = 11,12,i))
		aColSpan(k) = 5
	Next
	aColSpan(1) = 2
	Call AddRigaTabella(aV,aColori,,,,"Courier New",aColSpan)
	aV(1) = " Data "
	aV(2) = " Rit "
	i = 2
	For r = 1 To 11
		For k = 1 To 5
			i = i + 1
			aV(i) = Format2(k) & "°"
		Next
	Next
	Call AddRigaTabella(aV,aColori,,,,"Courier New")
	idPrimaRiga = GetIdPrimaRigaTabAna(aTabAnalitico)
	For k = idPrimaRiga To UBound(aTabAnalitico)
		idEstr = fine -((UBound(aTabAnalitico) + 1) - k - 1)
		aV(1) = " " & DataEstrazione(idEstr) & " "
		aV(2) = UBound(aTabAnalitico) - k
		For i = 1 To 55
			If aTabAnalitico(k,i) <> 0 Then
				aV(i + 2) = Format2(aTabAnalitico(k,i))
			Else
				aV(i + 2) = "  "
			End If
		Next
		Call AddRigaTabella(aV,aColori,,,,"Courier New")
	Next
	Call CreaTabella
End Sub
Function GetIdPrimaRigaTabAna(aTabAnalitico)
	Dim k,e
	For k = 1 To UBound(aTabAnalitico)
		For e = 1 To 55
			If aTabAnalitico(k,e) <> 0 Then
				GetIdPrimaRigaTabAna = k
				Exit Function
			End If
		Next
	Next
End Function
Function ScegliDaMenu(sTitolo,idSelDef)
	Dim k
	ReDim aV(5)
	For k = 1 To 5
		aV(k) = k
	Next
	k = ScegliOpzioneMenu(aV,idSelDef,sTitolo)
	If k > 0 Then
		ScegliDaMenu = aV(k)
	End If
End Function
Sub EseguiStatistica(CollCinquine,nEstrPerCalcFrq,Fine)
	Dim clsE
	Call OrdinaItemCollection(CollCinquine,"Ritardo")
	For Each clsE In CollCinquine
		Call clsE.CreaStatEstratti((Fine + 1) - nEstrPerCalcFrq,Fine)
	Next
End Sub
Sub AlimentaCollCinquine(CollCinquine,aTabAnalitico,QCinquinePerRuota,nClasse)
	Dim r,k,nPosIn,nPosFi
	Dim b,e,i
	Dim nTrovate
	Dim clsE
	Dim nPresenti
	Set CollCinquine = GetNewCollection
	For r = 1 To 11
		Call Messaggio("Ricerca cinquine su " & NomeRuota(Iif(r = 11,12,r)))
		nPosIn =((r - 1)*5) + 1
		nPosFi =(nPosIn - 1) + 5
		nTrovate = 0
		For k = 1 To UBound(aTabAnalitico)
			nPresenti = 0
			For e = nPosIn To nPosFi
				If aTabAnalitico(k,e) <> 0 Then
					nPresenti = nPresenti + 1
				End If
			Next
			If nPresenti = nClasse Then
				i = 0
				Set clsE = New clsEstrazione
				clsE.ruota = Iif(r = 11,12,r)
				clsE.ritardo = UBound(aTabAnalitico) - k
				For e = nPosIn To nPosFi
					i = i + 1
					Call clsE.SetNum(i,aTabAnalitico(k,e))
				Next
				CollCinquine.Add clsE
				nTrovate = nTrovate + 1
				If nTrovate = QCinquinePerRuota Then Exit For
			End If
		Next
		Call AvanzamentoElab(1,11,r)
	Next
End Sub
Function AlimentaGrigliaEstr(aTabAnalitico,Fine)
	Dim idEstr
	Dim Inizio
	Dim nTot
	Dim iPos,iEst,r,e
	Call Messaggio("Lettura estrazioni in corso")
	Inizio = Fine - 220
	If Inizio < 0 Then Inizio = 0
	nTot =(Fine + 1) - Inizio
	ReDim aTabAnalitico(nTot,55)
	For idEstr = Inizio To Fine
		iPos = 0
		iEst = iEst + 1
		For r = 1 To 12
			If r <> 11 Then
				For e = 1 To 5
					iPos = iPos + 1
					aTabAnalitico(iEst,iPos) = Estratto(idEstr,r,e)
				Next
			End If
		Next
		Call AvanzamentoElab(Inizio,Fine,idEstr)
	Next
End Function
Sub CreaTabAnalitico(aTabAnalitico)
	Dim k,j,e,ee,r
	Dim iPos,nPosIn,nPosFi
	For r = 1 To 11
		Call Messaggio("Creo analitico per " & NomeRuota(Iif(r = 11,12,r)))
		nPosIn =((r - 1)*5) + 1
		nPosFi =(nPosIn - 1) + 5
		For k = 2 To UBound(aTabAnalitico)
			For j = k - 1 To 1 Step - 1
				For e = nPosIn To nPosFi
					For ee = nPosIn To nPosFi
						If aTabAnalitico(j,ee) = aTabAnalitico(k,e) Then
							aTabAnalitico(j,ee) = 0
							Exit For
						End If
					Next
				Next
			Next
		Next
		Call AvanzamentoElab(1,11,r)
	Next
End Sub
 
Ultima modifica di un moderatore:
eheh :-) che ne dici Baffo ho esaudito i vostri desideri ? Non bere troppo che è tardi :-) !
 
Ultima modifica di un moderatore:
Grandissimo come sempre Luigi, speriamo che Frankstone o baffo ci facciano vedere come usufruirne al meglio
 
Ciao Rudi .-) si come statistica devo dire che riassume diversi valori forse sara utile pure per giocare su posizioni determinate.
Mentre facevo le prove mi sono accorto di diversi casi dove su dieci uscite magari mancava l'uscita in una posizione specifica come in questo esempio dove sembra mancare l'uscita in posizione 4 .. ovviamente questo è un uso basilare che è venuto in mente a me ..sicuramente si potra usare anche in altri modi

i8322_Immagine.JPG
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 19 ottobre 2024
    Bari
    66
    07
    78
    48
    60
    Cagliari
    26
    14
    56
    69
    89
    Firenze
    11
    82
    02
    09
    32
    Genova
    43
    20
    47
    01
    17
    Milano
    24
    78
    05
    38
    72
    Napoli
    05
    16
    49
    87
    02
    Palermo
    18
    54
    24
    76
    46
    Roma
    03
    62
    01
    84
    34
    Torino
    35
    29
    08
    61
    09
    Venezia
    30
    20
    60
    66
    45
    Nazionale
    77
    22
    53
    90
    89
    Estrazione Simbolotto
    18
    24
    45
    29
    23
Indietro
Alto