Novità

Richiesta modifica script ( Metodo Delta )

Halmun

Advanced Member >PLATINUM<
riprendo un mio vecchio metodo messo in script da LuigiB e modificato da Gian332 chiedendo gentilmente ai più esperti se sia possibile evidenziare le 5 classifiche come nella foto sottostante, evidenziando pero' in ROSSO i Delta fra i 5 estratti.
attualmente lo script li incolonna tutti impedendo pertanto di vedere a colpo d'occhio i Delta fra i 5 estratti.
segue esempio su BARI con fine analisi al 05/11/2022 :
osservando le 2 foto allegate troviamo come Primo delta il 2° e 5° estratto con valore Delta identico = a 1,471
che pone in gioco la terzina 63 43 10.
mentre, sempre come esempio, Abbiamo come Secondo DELTA la coppia 30 02 corrispondente al 4° e 5° estratto
rispettivamente con DELTA = a 1,438

ringrazio anticipatamente chiunque possa modificare il seguente script.

----------------------------------------------------------------------------------------------------------

Option Explicit

'QUESTO SCRIPT è STATO ORIGINARIAMENTE SCRITTO DA LuigiB SU RICHIESTA DI HALMUN PER FACILITARE LA RICERCA
' DEI NUMERI OTTIMALI INERENTI IL METODO SPAZIO DELTA
'E MODIFICATO DA GIAN332 IN DATA 07/12/2012

Class clsNumero
Dim N
Dim nUscite
Dim nUsciteRip
Private nDelta
Public Property Get Delta()
Delta = nDelta
End Property
Sub CalcolaDelta
nDelta = Round(Dividi(nUsciteRip,nUscite),3)
nDelta = Replace(nDelta,",",".")
End Sub
End Class
Class clsPosClassifica
Private collNumeri
Dim nDelta
Sub Class_Initialize
Set collNumeri = GetNewCollection
End Sub
Sub AddItemColl(ClsNum)
collNumeri.Add ClsNum
End Sub
Function GetNumeri
Dim ClsNum
Dim s
For Each ClsNum In collNumeri
s = s & Format2(ClsNum.n) & "."
Next
If Right(s,1) = "." Then s = Left(s,Len(s) - 1)
GetNumeri = s
End Function
Function QuantitaNumeri(aNumInGioco)
Dim ClsNum
Dim i
i = 0
For Each ClsNum In collNumeri
i = i + 1
ReDim Preserve aNumInGioco(i)
aNumInGioco(i) = ClsNum.N
Next
QuantitaNumeri = i
End Function
End Class
Sub Main

Dim nRuota,idEstr
Dim Inizio,Fine,ColpiVerifica
Dim nSpia,nPosSpia,nColpiSucc
Dim CollNumeri,CollClassifica
Dim ClsNum,clsNTmp
Dim clsPosCla
Dim k,kk
Dim iEstrAna,EstrazioneInizioTest
Dim nColpiGioco
Dim nLimitePrimePos
Dim f
Dim nGiocata

Dim sNumInGioco,sLastNumInGioco
Dim nRetColpi

'nRuota = ScegliRuota
nPosSpia = 1
For nRuota = 1 To 1 ' 1 TO 20 SCANSIONA TUTTE LE RUOTE
For nPosSpia = 1 To 5 ' 1 TO 5 SCANSIONA TUTTI I CINQUE ESTRATTI

Fine = EstrazioneFin - 22 'QUI POSSO INPOSTARE IL FINE ARCHIVIO IN MODO DA POTER FARE VERIFICHE
'inpostare ( - 0 ) per l'ultima estrazione disponibile in archivio
Inizio = 03862 'Fine - 3 '03862 EstrazioneIni 5/1/1945
idEstr = Fine
nColpiSucc = 9 'QUI POSSO INPOSTARE I COLPI SUCCESSIVI A PIACIMENTO (DEFAULT 9)
EstrazioneInizioTest = Fine - nColpiSucc ' INIZIO DEL TEST è dato da FINE - n°colpi successivi(9) dall'estrazione di INIZIO

nSpia = Estratto(idEstr,nRuota,nPosSpia)
If nSpia > 0 And nSpia <= 90 And nPosSpia > 0 And nPosSpia <= 5 And EstrazioneInizioTest > 0 And nColpiSucc > 0 Then

For iEstrAna = EstrazioneInizioTest To Fine
Call InitCollNumeri(CollNumeri)
Call Messaggio("RUOTA " & nRuota & " [SPIA " & nSpia & "] [" & nPosSpia & "°pos] su estrazione " & iEstrAna & " mancanti " &(Fine - iEstrAna))
For idEstr = Inizio To iEstrAna
If Estratto(idEstr,nRuota,nPosSpia) = nSpia Then
For Each ClsNum In CollNumeri
If idEstr + nColpiSucc <= iEstrAna Then
f = EstrattoFrequenza(nRuota,ClsNum.n,idEstr + 1,idEstr + nColpiSucc)
Else
f = EstrattoFrequenza(nRuota,ClsNum.n,idEstr + 1,iEstrAna)
End If
If f > 0 Then
ClsNum.nUscite = ClsNum.nUscite + 1 'conteggio sortite
ClsNum.nUsciteRip = ClsNum.nUsciteRip + f ' conteggio ripetizzioni
End If
Next
End If
Call AvanzamentoElab(Inizio,Fine,idEstr)
If ScriptInterrotto Then Exit For
Next
For Each ClsNum In CollNumeri
Call ClsNum.CalcolaDelta
Next
Call OrdinaItemCollection(CollNumeri,"Delta",,,0)
Set CollClassifica = GetNewCollection
For k = 1 To 90
Set ClsNum = CollNumeri(k)
Set clsPosCla = New clsPosClassifica
clsPosCla.nDelta = ClsNum.Delta
For kk = k To 90
k = kk
Set clsNTmp = CollNumeri(kk)
If clsNTmp.Delta = clsPosCla.nDelta Then
Call clsPosCla.AddItemColl(clsNTmp)
Else
k = kk - 1
Exit For
End If
Next
If k <= 90 Then Call AddItemCollClassifica(CollClassifica,clsPosCla)
Next
ReDim aNumInGioco(0)
'Call Scrivi(String(100,"-"))

If ScriptInterrotto Then Exit For
Next

'Call ScriviResoconto
ReDim aV(2)
aV(1) = "Delta"
aV(2) = "Numeri"
Call InitTabella(aV)
For Each clsPosCla In CollClassifica
aV(1) = clsPosCla.nDelta
aV(2) = clsPosCla.GetNumeri
Call AddRigaTabella(aV)
Next

'Call Scrivi("archivio Spaziometria da estrazz. numero " & Inizio & " a estrazz " & Fine)
Call Scrivi("TOT estrazioni analizzate " & Fine - Inizio & " -DALLA- " & GetInfoEstrazione(Inizio) & " -ALLA- " & GetInfoEstrazione(Fine))
Call Scrivi("RUOTA " & nRuota & " delta spia " & nSpia & " pos°" & nPosSpia & " su estrazione " & iEstrAna - 1 & " ultima anal" & GetInfoEstrazione(Fine))

Call CreaTabella
Else
MsgBox "Parametri di ricerca non validi",vbExclamation
End If

Next 'nPosSpia = nPosSpia+1
Next 'ruota
End Sub

Function VerificaCondizioneDiGioco(CollClassifica,nLimitePrimePos,aNumInGioco)
Dim clsP
Dim i
For Each clsP In CollClassifica
i = i + 1
If clsP.QuantitaNumeri(aNumInGioco) > 1 Then 'se voglio trovare 5 num inseriro >5
VerificaCondizioneDiGioco = True
Exit For
End If
If i > nLimitePrimePos Then Exit For
Next
End Function
Sub AddItemCollClassifica(CollClassifica,clsPosCla)
On Error Resume Next
Call CollClassifica.Add(clsPosCla,"k" & clsPosCla.nDelta)
End Sub
Sub InitCollNumeri(collNumeri)
Dim k
Dim ClsNum
Set collNumeri = GetNewCollection
For k = 1 To 90
Set ClsNum = New clsNumero
ClsNum.n = k
collNumeri.Add ClsNum
Next
End Sub
---------------------------------------------------------------------------------------------------------------------------
 

Allegati

  • delta-1.jpg
    delta-1.jpg
    318,7 KB · Visite: 66
  • delta-2.jpg
    delta-2.jpg
    131,6 KB · Visite: 65
Ultima modifica:
Ho cercato di vederne il funzionamento ma non mi parte neppure, da un sacco di errori nello script...
Ho anche notato che almeno 85 persone hanno visitato il tuo post, ma possibile che nessuno commenti?
:-(
 
strano che a voi non vi funzioni. qui da me con la versione di Spaziometria 1.6.34 funziona benissimo.
vedi allegato.
e i dati riportati sono identici alla mia versione in EXCEL.
ma ripeto; se fosse possibile avere l'output come da richiesta sarebbe ottimo per determinare i DELTA fra le colonne-estratti a colpo d'occhio. come nella mia versione in EXCEL, che va benissimo, ma è sempre meglio avere una versione in script decisamente più veloce nell'elaborazione dell'analisi.
 

Allegati

  • prova script.jpg
    prova script.jpg
    300,2 KB · Visite: 59
provo a rimettere il listato che ho copiato e incollato sul blocco note per poi riaprirlo con Spaziometria, e funziona benissimo.

Option Explicit

'QUESTO SCRIPT è STATO ORIGINARIAMENTE SCRITTO DA LuigiB SU RICHIESTA DI HALMUN PER FACILITARE LA RICERCA
' DEI NUMERI OTTIMALI INERENTI IL METODO SPAZIO DELTA
'E MODIFICATO DA GIAN332 IN DATA 07/12/2012

Class clsNumero
Dim N
Dim nUscite
Dim nUsciteRip
Private nDelta
Public Property Get Delta()
Delta = nDelta
End Property
Sub CalcolaDelta
nDelta = Round(Dividi(nUsciteRip,nUscite),3)
nDelta = Replace(nDelta,",",".")
End Sub
End Class
Class clsPosClassifica
Private collNumeri
Dim nDelta
Sub Class_Initialize
Set collNumeri = GetNewCollection
End Sub
Sub AddItemColl(ClsNum)
collNumeri.Add ClsNum
End Sub
Function GetNumeri
Dim ClsNum
Dim s
For Each ClsNum In collNumeri
s = s & Format2(ClsNum.n) & "."
Next
If Right(s,1) = "." Then s = Left(s,Len(s) - 1)
GetNumeri = s
End Function
Function QuantitaNumeri(aNumInGioco)
Dim ClsNum
Dim i
i = 0
For Each ClsNum In collNumeri
i = i + 1
ReDim Preserve aNumInGioco(i)
aNumInGioco(i) = ClsNum.N
Next
QuantitaNumeri = i
End Function
End Class
Sub Main

Dim nRuota,idEstr
Dim Inizio,Fine,ColpiVerifica
Dim nSpia,nPosSpia,nColpiSucc
Dim CollNumeri,CollClassifica
Dim ClsNum,clsNTmp
Dim clsPosCla
Dim k,kk
Dim iEstrAna,EstrazioneInizioTest
Dim nColpiGioco
Dim nLimitePrimePos
Dim f
Dim nGiocata

Dim sNumInGioco,sLastNumInGioco
Dim nRetColpi



'nRuota = ScegliRuota
nPosSpia = 1
For nRuota = 1 To 1 ' 1 TO 20 SCANSIONA TUTTE LE RUOTE
For nPosSpia = 1 To 5 ' 1 TO 5 SCANSIONA TUTTI I CINQUE ESTRATTI

Fine = EstrazioneFin - 22 'QUI POSSO INPOSTARE IL FINE ARCHIVIO IN MODO DA POTER FARE VERIFICHE
'inpostare ( - 0 ) per l'ultima estrazione disponibile in archivio
Inizio = 03862 'Fine - 3 '03862 EstrazioneIni 5/1/1945
idEstr = Fine
nColpiSucc = 9 'QUI POSSO INPOSTARE I COLPI SUCCESSIVI A PIACIMENTO (DEFAULT 9)
EstrazioneInizioTest = Fine - nColpiSucc ' INIZIO DEL TEST è dato da FINE - n°colpi successivi(9) dall'estrazione di INIZIO


nSpia = Estratto(idEstr,nRuota,nPosSpia)
If nSpia > 0 And nSpia <= 90 And nPosSpia > 0 And nPosSpia <= 5 And EstrazioneInizioTest > 0 And nColpiSucc > 0 Then



For iEstrAna = EstrazioneInizioTest To Fine
Call InitCollNumeri(CollNumeri)
Call Messaggio("RUOTA " & nRuota & " [SPIA " & nSpia & "] [" & nPosSpia & "°pos] su estrazione " & iEstrAna & " mancanti " &(Fine - iEstrAna))
For idEstr = Inizio To iEstrAna
If Estratto(idEstr,nRuota,nPosSpia) = nSpia Then
For Each ClsNum In CollNumeri
If idEstr + nColpiSucc <= iEstrAna Then
f = EstrattoFrequenza(nRuota,ClsNum.n,idEstr + 1,idEstr + nColpiSucc)
Else
f = EstrattoFrequenza(nRuota,ClsNum.n,idEstr + 1,iEstrAna)
End If
If f > 0 Then
ClsNum.nUscite = ClsNum.nUscite + 1 'conteggio sortite
ClsNum.nUsciteRip = ClsNum.nUsciteRip + f ' conteggio ripetizzioni
End If
Next
End If
Call AvanzamentoElab(Inizio,Fine,idEstr)
If ScriptInterrotto Then Exit For
Next
For Each ClsNum In CollNumeri
Call ClsNum.CalcolaDelta
Next
Call OrdinaItemCollection(CollNumeri,"Delta",,,0)
Set CollClassifica = GetNewCollection
For k = 1 To 90
Set ClsNum = CollNumeri(k)
Set clsPosCla = New clsPosClassifica
clsPosCla.nDelta = ClsNum.Delta
For kk = k To 90
k = kk
Set clsNTmp = CollNumeri(kk)
If clsNTmp.Delta = clsPosCla.nDelta Then
Call clsPosCla.AddItemColl(clsNTmp)
Else
k = kk - 1
Exit For
End If
Next
If k <= 90 Then Call AddItemCollClassifica(CollClassifica,clsPosCla)
Next
ReDim aNumInGioco(0)
'Call Scrivi(String(100,"-"))


If ScriptInterrotto Then Exit For
Next


'Call ScriviResoconto
ReDim aV(2)
aV(1) = "Delta"
aV(2) = "Numeri"
Call InitTabella(aV)
For Each clsPosCla In CollClassifica
aV(1) = clsPosCla.nDelta
aV(2) = clsPosCla.GetNumeri
Call AddRigaTabella(aV)
Next

'Call Scrivi("archivio Spaziometria da estrazz. numero " & Inizio & " a estrazz " & Fine)
Call Scrivi("TOT estrazioni analizzate " & Fine - Inizio & " -DALLA- " & GetInfoEstrazione(Inizio) & " -ALLA- " & GetInfoEstrazione(Fine))
Call Scrivi("RUOTA " & nRuota & " delta spia " & nSpia & " pos°" & nPosSpia & " su estrazione " & iEstrAna - 1 & " ultima anal" & GetInfoEstrazione(Fine))

Call CreaTabella
Else
MsgBox "Parametri di ricerca non validi",vbExclamation
End If






Next 'nPosSpia = nPosSpia+1
Next 'ruota
End Sub




Function VerificaCondizioneDiGioco(CollClassifica,nLimitePrimePos,aNumInGioco)
Dim clsP
Dim i
For Each clsP In CollClassifica
i = i + 1
If clsP.QuantitaNumeri(aNumInGioco) > 1 Then 'se voglio trovare 5 num inseriro >5
VerificaCondizioneDiGioco = True
Exit For
End If
If i > nLimitePrimePos Then Exit For
Next
End Function
Sub AddItemCollClassifica(CollClassifica,clsPosCla)
On Error Resume Next
Call CollClassifica.Add(clsPosCla,"k" & clsPosCla.nDelta)
End Sub
Sub InitCollNumeri(collNumeri)
Dim k
Dim ClsNum
Set collNumeri = GetNewCollection
For k = 1 To 90
Set ClsNum = New clsNumero
ClsNum.n = k
collNumeri.Add ClsNum
Next
End Sub
 
bene, vedo che ora lo script vi funziona. al riguardo colgo l'occasione per correggere i dati dei 2 esempi che ho riportato nella presentazione del Post, erano ERRATI causa un errore che avevo in EXCEL .... ora corretto.
la richiesta comunque resta valida : avere le 5 classifiche delle 5 colonne-estratti poste in Orizzontale e non in verticale, UNA A FIANCO DELL'ALTRA, con evidenziati in ROSSO i Delta, come nella foto che ho postato ieri.
GRAZIE ANCORA.
 
Ciao Halmun, vorresti un output di questo genere?

Img1 x Halmun.JPG
inoltre le colorazioni dei valori uguali devono essere evidenziati solo se appartenenti alla stessa riga?
NB: se appartenenti a diverse righe la cosa diventa difficoltosa, sia per la scelta di colori similari che per la gestione degli stessi.
con l'excel, quandi colori utilizzi, se usi la formattazione automatica?

Spero di essere stato charo.
ciao
 
Ultima modifica:
Ciao Halmun, vorresti un output di questo genere?

Vedi l'allegato 2246475
inoltre le colorazioni dei valori uguali devono essere evidenziati solo se appartenenti alla stessa riga?
NB: se appartenenti a diverse righe la cosa diventa difficoltosa, sia per la scelta di colori similari che per la gestione degli stessi.
con l'excel, quandi colori utilizzi, se usi la formattazione automatica?

Spero di essere stato charo.
ciao
GRANDE CLAUDIO8 ..... PERFETTO.
naturalmente ci sono altri DELTA sotto quelli che hai evidenziato. come ad esempio il secondo DELTA, ancora fra 1° e 4° estratto con valore 1,455 e rispettiva coppia 10 15
OTTIMO LAVORO CLAUDIO8 .... è proprio quello che mi serve.
ti sarei grato se potresti pubblicare il Listato.
GRAZIE ANCORA.
 
si Claudio8 .... i Delta da evidenziare devono appartenere alla stessa riga :)
mi servono per uno studio sulla rottura degli equilibri.
Grazie.

NP:
per i colori ne basta uno solo a tua scelta. metti pure il colore che vuoi. la cosa più importante è partire visivamente dai DELTA più Alti presenti nelle 5 classifiche.
 
Ultima modifica:
GRANDE CLAUDIO8 ..... PERFETTO.
naturalmente ci sono altri DELTA sotto quelli che hai evidenziato. come ad esempio il secondo DELTA, ancora fra 1° e 4° estratto con valore 1,455 e rispettiva coppia 10 15
OTTIMO LAVORO CLAUDIO8 .... è proprio quello che mi serve.
ti sarei grato se potresti pubblicare il Listato.
GRAZIE ANCORA.
Ti ringrazio per l' elogio, ma per ora ho solo fatto un copia incolla ;)per capire bene le tue esigenze e scegliere la migliore/fattibile opzione per la soluzione.;)
ciao
 
Ultima modifica:
GRANDE CLAUDIO8 ..... PERFETTO.
naturalmente ci sono altri DELTA sotto quelli che hai evidenziato. come ad esempio il secondo DELTA, ancora fra 1° e 4° estratto con valore 1,455 e rispettiva coppia 10 15
OTTIMO LAVORO CLAUDIO8 .... è proprio quello che mi serve.
ti sarei grato se potresti pubblicare il Listato.
GRAZIE ANCORA.
da questo post mi pare di capire che tu voglia la colorazione in tutta la tabella, giusto ?
la colorazione va fatta anche sulla cella dei numeri?
 
da questo post mi pare di capire che tu voglia la colorazione in tutta la tabella, giusto ?
la colorazione va fatta anche sulla cella dei numeri?
mi basta che siano evidenziati solo i valori DELTA, esattamente come nella foto che hai pubblicato. ma se vuoi colorare anche i numeri corrispondenti ad ogni Valore DELTA va bene lo stesso. grazie ancora Claudio8
 
io in EXCEL, ad esempio, li ho colorati così. evidenziando i valori DELTA con i rispettivi numeri corrispondenti.
quindi se vuoi puoi colorare sia il valore che il suo numero corrispondente.
per la disposizione invece, VA BENISSIMO come hai disposto le 5 classifiche. ( per ogni classifica - valore DELTA e numero corrispondente ) ...................... PERFETTO :)
 

Allegati

  • ESEMPIO DELTA.jpg
    ESEMPIO DELTA.jpg
    481,5 KB · Visite: 48
Halmun,
quante righe massimo possono servire 80-90-100 (per me dovrebbero essere sufficienti 80)
eccoti l'output in tabella

Img2 x Halmun.JPG
ho notato che è lento, vorrei modificarlo in exe...
per almeno quello che vedi, controlla se è correto.
 
Halmun,
quante righe massimo possono servire 80-90-100 (per me dovrebbero essere sufficienti 80)
eccoti l'output in tabella

Vedi l'allegato 2246511
ho notato che è lento, vorrei modificarlo in exe...
per almeno quello che vedi, controlla se è correto.
ottimo lavoro. io nel mio foglio Excel ho messo 90 righe. sono il massimo che si possono mettere. di più non servono.
al limite, si potrebbero evidenziare le righe di separazione per ogni classifica? vedo che hai accorpato il tutto, probabilmente x questioni di spazio quando in un Delta di una classifica ci sono troppi numeri corrispondenti. secondo me nella tua prima foto gli spazi che separano le classifiche migliorano la visibilità.
 
Ultima modifica:
ottimo lavoro. io nel mio foglio Excel ho messo 90 righe. sono il massimo che si possono mettere. di più non servono.
al limite, si potrebbero evidenziare le righe di separazione per ogni classifica? vedo che hai accorpato il tutto, probabilmente x questioni di spazio quando in un Delta di una classifica ci sono troppi numeri corrispondenti. secondo me nella tua prima foto gli spazi separati fra le classifiche migliorano la visibilità.
Nel post 8 ho riportato su un foglio excel le colonne della tabella verticale che aveva lo script da te postato posizionandole manalmene in maniera separata.

Lo script crea le tabelle con le caselle già bordate in automatico per cui la separazione visiva non può essere fatta se non con le caselle già bordate e quindi l'effetto di separazione viene meno.
Ci risentiamo domani.
buona notte caro .
 
Nel post 8 ho riportato su un foglio excel le colonne della tabella verticale che aveva lo script da te postato posizionandole manalmene in maniera separata.

Lo script crea le tabelle con le caselle già bordate in automatico per cui la separazione visiva non può essere fatta se non con le caselle già bordate e quindi l'effetto di separazione viene meno.
Ci risentiamo domani.
buona notte caro .
Grazie Claudio8 .... realizzalo pure come meglio credi. sono sicuro che verrà un ottimo lavoro. :)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    venerdì 10 gennaio 2025
    Bari
    40
    61
    11
    86
    37
    Cagliari
    31
    02
    51
    68
    87
    Firenze
    73
    55
    34
    52
    18
    Genova
    11
    40
    27
    82
    20
    Milano
    80
    71
    65
    19
    10
    Napoli
    50
    30
    03
    01
    36
    Palermo
    66
    42
    43
    76
    89
    Roma
    05
    22
    62
    35
    39
    Torino
    17
    58
    62
    86
    69
    Venezia
    43
    89
    14
    04
    40
    Nazionale
    64
    76
    35
    40
    19
    Estrazione Simbolotto
    Bari
    08
    07
    37
    33
    38
Indietro
Alto