Novità

Problema con funzioni verificaesito e verificaesitoturbo...

lotto_tom75

Advanced Premium Member
Entrambe le funzioni in oggetto che qui sotto riporto...

Codice:
Sub Main
 
   VerificaEsito
   VerificaEsitoTurbo
 
End Sub

sembrano non presentare la possibilità di impostare come estrazione finale di verifica una estrazione diversa da quella presente come ultima più attuale in archivio... (es. rispetto la 3/2/2022)

In particolare in un mio script in costruzione le funzioni verificaesito e verificaesitoturbo, presente nel primo step necessario ad avere la 63ina base intermedia di sviluppo con colpi restanti teorici 1, non presentano la possibilità di impostare come estrazione finale una estrazione diversa (es. estrazioneprogressivaprincipale = 27/2/2022) rispetto a quella ultima e + attuale presente nell'archivio lotto del programma (es. quella 3/2/2022), quindi è impossibile avere per me la 63ine base non ancora sfaldatasi retroattivamente rispetto le estrazioni finali "virtuali" passate (es. le ultime 3 ecc...) che infatti risultano tutte con casi attuali passati = 0 bloccandomi le successive operazioni perchè di fatto manca il gruppo base su cui operare...

E' possibile in qualche modo impostare estrazioni finali "virtuali" diverse dall'ultima presente in archivio e verificare gli esiti retroattivamente? Se si... come si fa? Grazie agli esperti o al maestro eventualmente in ascolto...

Se con le due funzioni sopra menzionate non è possibile... c'è un altro modo per fare questo tipo di verifica?

👋🧑‍🍳:)
 
Ultima modifica:
Verificaesito verifica le estrazioni, non può verificare una cosa che no esiste.
In pratica non è possibile andar fuori range.

no non mi sono spiegato bene ilegend, non è che voglio verificare estrazioni che non esistono ancora... :D bensì fermarmi... a quelle passate che mi interessano... come se l'archivio fosse troncato.. e avesse per ogni verifica come estrazione finale non l'ultima estrazione effettiva (es. quella del 3/2/2022) bensì quella del 27/2/2022. Tutto questo ovviamente senza dover realmente troncare l'archivio prima di effettuare la verifica... Ecco perchè ho usato il termine "virtuale"...

es. "visivo"... su verifica delle ultime tre estrazioni

vorrei verificare gli esiti a colpo... in dinamica...

da estrazione 1 a estrazione 1036
da estrazione 1 a estrazione 1037
da estrazione 1 a estrazione 1038

invece adesso mi verifica sempre e soltanto

da estrazione 1 a estrazione 1038...
quindi con i casi attuali non ancora sfaldatisi ho soltanto il terzo il caso...
mentre se funzionasse come ipotizzo "troncando virtualmente l'archivio" ad ogni passata estrazione (es. 1036 e 1037) avrei per ognuna almeno un caso in corso,...

Adesso la situazione è

da estrazione 1 a estrazione 1036 -> casi in corso 0
da estrazione 1 a estrazione 1037 -> casi in corso 0
da estrazione 1 a estrazione 1038 -> casi in corso 1

mentre dovrebbe essere...

da estrazione 1 a estrazione 1036 -> casi in corso 1
da estrazione 1 a estrazione 1037 -> casi in corso 1
da estrazione 1 a estrazione 1038 -> casi in corso 1

VerificaEsiti
VerificaEsiti


Function VerificaEsiti(aNumeri, aRuote, IdEstrazione, Sorte, Optional EntroColpi = 0, Optional nEsitiMax = 0, Optional aPosizioni = Nothing, Optional RetEsito = "", Optional RetColpi = 0, Optional RetEstratti = "", Optional RetIdEstr = 0, Optional aRetRuote = Nothing) As Boolean

VerificaEsito
Function VerificaEsito(aNumeri, aRuote, IdEstrazione, Sorte, Optional EntroColpi = 0, Optional aPosizioni = Nothing, Optional RetEsito = "", Optional RetColpi = 0, Optional RetEstratti = "", Optional RetIdEstr = 0, Optional aRetRuote = Nothing) As Boolean

VerificaEsitoTurbo
Function VerificaEsitoTurbo(aNumeri, aRuote, IdEstrazione, Sorte, Optional EntroColpi = 0, Optional aPosizioni = Nothing, Optional RetEsito = "", Optional RetColpi = 0, Optional RetEstratti = "", Optional RetIdEstr = 0, Optional aRetRuote = Nothing) As Boolean

in altre parole...

in tutte queste funzioni sembra mancare il parametro estrazionefin presente ad esempio in statisticaformazioni e statisticaformazioniturbo per intenderci...

👋🙂
 
Ultima modifica:
Mi spiace, non capisco , in verificaesito sei tu che imposti il range
Ini ,fin
Ini,fin-1
Ini, fin-2
.ecc.
Questa deve essere un altra delle tue super complesse ricerche, spero che qualcuno riesca a darti una mano.
Ciao :)
 
Mi spiace, non capisco , in verificaesito sei tu che imposti il range
Ini ,fin
Ini,fin-1
Ini, fin-2
.ecc.
Questa deve essere un altra delle tue super complesse ricerche, spero che qualcuno riesca a darti una mano.
Ciao :)

No no aspetta ilegend...
se fosse così ini, fin-valorevoluto mi andrebbe benissimo! :eek:

io non riesco ad impostare fin-valorevoluto...
non so dove metterlo in verificaesito...

es...

Codice:
Call VerificaEsitoTurbo(vettorexverifica,aRuote,estrazioneprogressiva + 1,sortediverifica,colpidiverifica,,esitoverifica,Entroilcolpo,estratti,idestrazioneuscita)

mi faresti un esempio di verifica esito con ini e fin-valorevoluto mettendolo in riga di funzione? grazie mille se puoi...

In altre parole dove lo posizioneresti fin-valorevoluto nella mia funzione qui sotto?

Codice:
Call VerificaEsitoTurbo(vettorexverifica,aRuote,estrazioneprogressiva + 1,sortediverifica,colpidiverifica,,esitoverifica,Entroilcolpo,estratti,idestrazioneuscita)

il thread relativo se vuoi seguirlo è quello in sistemistica per il tentativo di rilevare lunghette di classe contenuta per almeno due punti a colpo su ruota unica ;)

Ciao :)
 
Ultima modifica:
Leggi l'help e saprai dove mettere i parametri.
no non mi sono spiegato bene ilegend, non è che voglio verificare estrazioni che non esistono ancora... :D bensì fermarmi... a quelle passate che mi interessano... come se l'archivio fosse troncato.. e avesse per ogni verifica come estrazione finale non l'ultima estrazione effettiva (es. quella del 3/2/2022) bensì quella del 27/2/2022. Tutto questo ovviamente senza dover realmente troncare l'archivio prima di effettuare la verifica... Ecco perchè ho usato il termine "virtuale"...

es. "visivo"... su verifica delle ultime tre estrazioni

vorrei verificare gli esiti a colpo... in dinamica...

da estrazione 1 a estrazione 1036
da estrazione 1 a estrazione 1037
da estrazione 1 a estrazione 1038

invece adesso mi verifica sempre e soltanto

da estrazione 1 a estrazione 1038...
quindi con i casi attuali non ancora sfaldatisi ho soltanto il terzo il caso...
mentre se funzionasse come ipotizzo "troncando virtualmente l'archivio" ad ogni passata estrazione (es. 1036 e 1037) avrei per ognuna almeno un caso in corso,...

Adesso la situazione è

da estrazione 1 a estrazione 1036 -> casi in corso 0
da estrazione 1 a estrazione 1037 -> casi in corso 0
da estrazione 1 a estrazione 1038 -> casi in corso 1

mentre dovrebbe essere...

da estrazione 1 a estrazione 1036 -> casi in corso 1
da estrazione 1 a estrazione 1037 -> casi in corso 1
da estrazione 1 a estrazione 1038 -> casi in corso 1

VerificaEsiti
VerificaEsiti


Function VerificaEsiti(aNumeri, aRuote, IdEstrazione, Sorte, Optional EntroColpi = 0, Optional nEsitiMax = 0, Optional aPosizioni = Nothing, Optional RetEsito = "", Optional RetColpi = 0, Optional RetEstratti = "", Optional RetIdEstr = 0, Optional aRetRuote = Nothing) As Boolean

VerificaEsito
Function VerificaEsito(aNumeri, aRuote, IdEstrazione, Sorte, Optional EntroColpi = 0, Optional aPosizioni = Nothing, Optional RetEsito = "", Optional RetColpi = 0, Optional RetEstratti = "", Optional RetIdEstr = 0, Optional aRetRuote = Nothing) As Boolean

VerificaEsitoTurbo
Function VerificaEsitoTurbo(aNumeri, aRuote, IdEstrazione, Sorte, Optional EntroColpi = 0, Optional aPosizioni = Nothing, Optional RetEsito = "", Optional RetColpi = 0, Optional RetEstratti = "", Optional RetIdEstr = 0, Optional aRetRuote = Nothing) As Boolean


in altre parole...

in tutte queste funzioni sembra mancare il parametro estrazionefin presente ad esempio in statisticaformazioni e statisticaformazioniturbo per intenderci...

👋🙂

come puoi vedere claudiotto ho riportato in rosso quello che ho letto nell'help... 🧐 ma continuo a non vedere dove mettere il valore di fine verifica come ho richiesto di spiegarmi possibilmente ad ilegend. Il fatto di non poter mettere un valore di fine verifica diverso rispetto a quello "di default" corrispondente sempre all'ultima estrazione presente in archivio, mi rende impossibile per le estrazioni passate trovare casi non sfaldatisi a colpo e quindi procedere con la verifica, dei casi passati, degli ulteriori relativi step... Good saturday sibillino... aiutante... 👋🧑‍🍳 😎.
 
Ultima modifica:
EntroColpi è il parametro da usare.
dall'help:
VerificaEsito ........
Optional EntroColpi = 0Colpi entro i quali verificare la combinazione

in spaziometria trovi in cartella test degli script.
script Test_ Verificaesito.
Codice:
Sub Main
    ReDim aNum(4) ' array contenente il pronostico
    ReDim aRt(2) ' array contenente le ruote
    Dim idEstrInizio ' estrazione da dove comincia la verifica dell'esito
    Dim RetEsito ' torna il nome della sorte (estratto , ambo ...ecc)
    Dim RetColpi ' torna i colpi impiegti fino al raggiungimento dell'esito
    Dim RetEstratti ' torna i numeri estratti
    Dim RetIdEstr ' torna lidentificativo numerico dell'estrazione in cui si è avuto l'esito
    Dim k
    Dim Somma
    'imposto il pronostico da verificare
    aNum(1) = 4
    aNum(2) = 8
    aNum(3) = 12
    aNum(4) = 16
    ' imposto le ruote su cui giocare
    aRt(1) = BA_
    aRt(2) = RO_
    ' imposto l'estrazione da dove parte la verifica
    idEstrInizio = 9000
    'gioco per AMBO a patrire dalla 9000 con un numero di colpi 10
    If VerificaEsito(aNum,aRt,idEstrInizio,2,10,,RetEsito,RetColpi,RetEstratti,RetIdEstr) Then
        Call Scrivi(GetInfoEstrazione(RetIdEstr) & " " & RetEsito & " al colpo : " & RetColpi & " con  " & RetEstratti)
        ' come si fa a leggere in un array gli estratti usciti e sommarli ?
        ReDim aV(0)
        Call SplitByChar(RetEstratti," ",aV)
        For k = 0 To UBound(aV)
            If IsNumeric(aV(k)) Then
                Somma = Somma + CInt(aV(k))
            End If
        Next
        Call Scrivi
        Call Scrivi("Somma estratti : " & Somma)
    Else
        Call Scrivi("Esito negativo")
    End If
End Sub

Ti faccio notare che
in VerificaEsito
IdEstrazioneIl numero identificativo dell'estrazione (da 1 a estrazioni totali nell'archivio) dal quale inizia la verifica, normalmente si usa es+1
invece
EntroColpi, se lasciato vuoto controlla da " IdEstrazione" a EstrazioniArchivio ( massimo identificativo di estrazioni presenti in archivio)
attenzione a non confondere estrazionefin con estrazioniarchivio, sono 2 cose differenti il cui valore coincide solo quando spaziometria è impostato con "fine range" sull'ultima estrazione presente in archivio.
Se ad EntroColpi dai un valore, la funzione verifica l'esito entro i colpi che hai specificato ( nel caso del test_inviatoti, io ho scritto 10 colpi) .
Questo valore può anche essere definibile con una differenza tra 2 diversi "Id" di estrazioni (numeri identificativi di estrazioni).
spero di essere stato chiaro
Saluti
 
Ciao a tutti..
Tom scusa se non ti ho risposto prima,ma ho le notifiche che non notificano ,non sempre mi aggiornano.
Cmq claudio ha spiegato al meglio
Grazie claudio:)
 
EntroColpi è il parametro da usare.
dall'help:
VerificaEsito ........
Optional EntroColpi = 0Colpi entro i quali verificare la combinazione

in spaziometria trovi in cartella test degli script.
script Test_ Verificaesito.
Codice:
Sub Main
    ReDim aNum(4) ' array contenente il pronostico
    ReDim aRt(2) ' array contenente le ruote
    Dim idEstrInizio ' estrazione da dove comincia la verifica dell'esito
    Dim RetEsito ' torna il nome della sorte (estratto , ambo ...ecc)
    Dim RetColpi ' torna i colpi impiegti fino al raggiungimento dell'esito
    Dim RetEstratti ' torna i numeri estratti
    Dim RetIdEstr ' torna lidentificativo numerico dell'estrazione in cui si è avuto l'esito
    Dim k
    Dim Somma
    'imposto il pronostico da verificare
    aNum(1) = 4
    aNum(2) = 8
    aNum(3) = 12
    aNum(4) = 16
    ' imposto le ruote su cui giocare
    aRt(1) = BA_
    aRt(2) = RO_
    ' imposto l'estrazione da dove parte la verifica
    idEstrInizio = 9000
    'gioco per AMBO a patrire dalla 9000 con un numero di colpi 10
    If VerificaEsito(aNum,aRt,idEstrInizio,2,10,,RetEsito,RetColpi,RetEstratti,RetIdEstr) Then
        Call Scrivi(GetInfoEstrazione(RetIdEstr) & " " & RetEsito & " al colpo : " & RetColpi & " con  " & RetEstratti)
        ' come si fa a leggere in un array gli estratti usciti e sommarli ?
        ReDim aV(0)
        Call SplitByChar(RetEstratti," ",aV)
        For k = 0 To UBound(aV)
            If IsNumeric(aV(k)) Then
                Somma = Somma + CInt(aV(k))
            End If
        Next
        Call Scrivi
        Call Scrivi("Somma estratti : " & Somma)
    Else
        Call Scrivi("Esito negativo")
    End If
End Sub

Ti faccio notare che
in VerificaEsito
IdEstrazioneIl numero identificativo dell'estrazione (da 1 a estrazioni totali nell'archivio) dal quale inizia la verifica, normalmente si usa es+1
invece
EntroColpi, se lasciato vuoto controlla da " IdEstrazione" a EstrazioniArchivio ( massimo identificativo di estrazioni presenti in archivio)
attenzione a non confondere estrazionefin con estrazioniarchivio, sono 2 cose differenti il cui valore coincide solo quando spaziometria è impostato con "fine range" sull'ultima estrazione presente in archivio.
Se ad EntroColpi dai un valore, la funzione verifica l'esito entro i colpi che hai specificato ( nel caso del test_inviatoti, io ho scritto 10 colpi) .
Questo valore può anche essere definibile con una differenza tra 2 diversi "Id" di estrazioni (numeri identificativi di estrazioni).
spero di essere stato chiaro
Saluti

ti ringrazio claudio per la spiegazione dettagliata ma purtroppo non è quello che intendo...

non riesco a spiegarmi...

il problema è che vorrei fare una verifica... dinamica per i casi passati come se l'archivio di spaziometria non fosse aggiornato (per ogni verifica) in modo da avere per ogni estrazionefinale "virtuale" (virtuale nel senso che in realtà nel programma le estrazioni sono presenti fino all'ultima + attuale) io possa avere per ogni caso i colpi rimanenti "virtuali" per quella data operazione (es. 63ina x A a colpo non ancora sfaldatasi...). Invece con quel parametro entro colpi che già conosco e che mi hai indicato... non riesco ad ottenere questa cosa... infatti anche se metto entro colpi 1 mi dice ovviamente che non ci sono casi con colpi rimanenti per i casi passati testati.. e il test mi si blocca (perchè per andare avanti necessita appunto di almeno un caso con colpi rimanenti > 0). I colpi rimanenti pari a 1 necessari ad andare avanti con lo sviluppo di test me li trova appunto solo per l'ultima estrazione presente in archivio in rapporto a quella reale ancora non prodotta... (es. attuale: mi trova un caso attuale con un colpo rimanente solo per l'estrazione 10038 de 3/2/2022 in riferimento a quella prox di stasera...) mentre per tutti gli altri casi testati relativi all'estrazioni passate virtuali (es. del 27/2/2022 ecc..) mi dice sempre casi attuali = 0 perchè appunto considera entro un colpo tutte le 63ine rilevate sfaldate...

Ho provato anche a fare un pasticcio del tipo al posto di entro colpi mettere il valore estrazionefin-estrazioneprogressiva ma ovviamente facendo così non ho risolto un bip... 😵🙃

Riportando schematicamente quanto esposto sopra...

vorrei verificare gli esiti a colpo... in dinamica...

da estrazione 1 a estrazione 10036
da estrazione 1 a estrazione 10037
da estrazione 1 a estrazione 10038

invece adesso mi verifica sempre e soltanto

da estrazione 1 a estrazione 10038...
quindi con i casi attuali non ancora sfaldatisi ho soltanto il terzo il caso...
mentre se funzionasse come ipotizzo "troncando virtualmente l'archivio" ad ogni passata estrazione (es. 10036 e 10037) avrei per ognuna almeno un caso in corso,...

Adesso la situazione al momento di lanciare la verifica è

da estrazione 1 a estrazione 10036 -> casi in corso 0 -> si blocca perchè non c'e' nulla da ridurre...
da estrazione 1 a estrazione 10037 -> casi in corso 0 -> si blocca perchè non c'è nulla da ridurre...
da estrazione 1 a estrazione 10038 -> casi in corso 1 -> va avanti perchè appunto c'è un caso valido... con colpi rimanenti pari a 1...

mentre dovrebbe essere qualcosa del tipo...

da estrazione 1 a estrazione 10036 -> casi in corso 1 -> prosegue la riduzione... e fa la verifica finale come se l'archivio lotto fosse troncato alla 1036...
da estrazione 1 a estrazione 10037 -> casi in corso 1 -> prosegue la riduzione... e fa la verifica finale come se l'archivio lotto fosse troncato alla 1037...
da estrazione 1 a estrazione 10038 -> casi in corso 1 -> prosegue la riduzione...

la funzione che blocca tutto nella verifica dei casi passati per il motivo sopradetto è questa che vi metto qui sotto se volete provare a modificarla opportunatamente per ottenere quanto sopra riportato...

Codice:
 Call VerificaEsitoTurbo(vettorexverifica,aRuote,estrazioneprogressiva + 1,sortediverifica,entrocolpi,,esitoverifica,Entroilcolpo,estratti,idestrazioneuscita)


Non so come posso spiegare altrimenti il problema.. ma spero piano piano di arrivare alla soluzione... 😌

Grazie comunque claudio8 e ilegend (y)👋🧑‍🍳🙂
 
Ultima modifica:
Tom , con gli script è tutto fattibile, anche se non esistono già funzioni specifiche.
Credo che il tuo problema sia ciclare l'attività che hai ipotizzato, quello di cercare un parametro in verifica esito che sia dinamico è conseguente a quello che imposti nella Attività del costrutto.
Altro non saprei dirti, se non vedo lo script che devi realizzare
metti lo script che lo adatto alle tue esigenze, se non vuoi pubblicarlo scrivimi in privato, se poi vuoi fare da te ricordati e rileggiti gli script che ti avevo inviato.
saluti
 
Tom , con gli script è tutto fattibile, anche se non esistono già funzioni specifiche.

Credo che il tuo problema sia ciclare l'attività che hai ipotizzato, quello di cercare un parametro in verifica esito che sia dinamico è conseguente a quello che imposti nella Attività del costrutto.
Altro non saprei dirti, se non vedo lo script che devi realizzare
metti lo script che lo adatto alle tue esigenze, se non vuoi pubblicarlo scrivimi in privato, se poi vuoi fare da te ricordati e rileggiti gli script che ti avevo inviato.
saluti

Nessun problema caro :)

ecco qua il mio script "pasticcioso..." modulare... 🧑‍🍳

primo script da nominare : script0xinclusione-x1clp.ls

Codice:
' script 0 by lottotom75

Function Step0
   Dim Step1
   Dim Step2
   Dim Step3
   Dim Step4
   Dim Step5
   Step1 = ".\step1.txt"
   Step2 = ".\step2.txt"
   Step3 = ".\step3.txt"
   Step4 = ".\step4.txt"
   Step5 = ".\step5.txt"
   If FileEsistente(Step1) Then
      Call EliminaFile(Step1)
 
   End If
   If FileEsistente(Step2) Then
      Call EliminaFile(Step2)
  
   End If
   If FileEsistente(Step3) Then
      Call EliminaFile(Step3)
    
   End If
   If FileEsistente(Step4) Then
      Call EliminaFile(Step4)
  
   End If
   If FileEsistente(Step5) Then
      Call EliminaFile(Step5)
 
   End If

 
End Function

secondo script da nominare : script1xinclusione-b-senzatabella-conestrazioneprogressivaprincipale-entrocolpi-x1clp

Codice:
' script 1 by lottotom75

Sub Main
   Dim estrazioneprogressivaprincipale
   Call Step1(estrazioneprogressivaprincipale)
End Sub
Function Step1(estrazioneprogressivaprincipale)
   Dim IdEstr,ncs
   Dim E,qClp,nColpo,Esi
   qClp = colpidiverifica '18
   ReDim aClp(qClp)
   For E = 1 To colpidiverifica ' 18
      aClp(E) = 0
   Next
   ncs = 0
   E = 0
   Dim nSorte,aRuote,Ini,fin,sMsg,nMoltip,nTrov,nNumSel
   Dim nCicloTeo,nRitMax,nRitMin,nClasseLunghetta,nRuoteSel,nLunghetteDaTrov,i2,ccColonna,ClasseFin
   Dim TimeStart
   Dim k,CollComb,cColonna
   Dim aN
   Dim TipoAlgo
   Dim RetRit,RetRitMax,RetIncrRitMax,RetFrq
   Dim nSuperficialita
   Dim vettorexverifica
   Dim sortediverifica,colpidiverifica,esitoverifica,estratti,idestrazioneuscita
   Dim Entroilcolpo
   Dim casipos
   Dim casineg
   Dim casiatt
   Dim contaestrazioni
   Dim colpomassimo
   Dim colpirimanentirispettocolpomassimo
   Dim colpirimanentirispettocolpidiverifica
   Dim numerocasiconcolpirimanentirispettocolpomassimonegativi
   Dim colpirimanentiminimi
   Dim Formazioneconcolpirimanentiminimi
   Dim ruotaconformazioneconcolpirimamentiminimi
   Dim colpidiverificainiziali
   Dim Valorenegativomassimodicolpirimanentirispettocolpomassimo
   Valorenegativomassimodicolpirimanentirispettocolpomassimo = 0
   Dim Formazioneconvaloremassimonegativodicolpirestantirispettocolpomassimo
   Dim raminvoluto
   Dim ramaxvoluto
   Dim colpomaxrelativo
   Dim colpomaxrelativoaicrtnegativi
   Dim filereportxcollimanzeenonsolo
   filereportxcollimanzeenonsolo = ".\step1.txt"
   Call Scrivi
   Call Scrivi("Elaborazione eseguita con archivio lotto aggiornato al: " & giorno(EstrazioneFin) & "-" & Mese(EstrazioneFin) & "-" & Anno(EstrazioneFin))
   Call Scrivi
   nTrov = 0
   'nNumSel = ScegliNumeri(aN)
   aN = Array(0,2,4,5,6,7,10,11,13,15,16,17,18,19,20,21,22,23,25,26,27,28,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,47,49,50,51,52,53,54,55,56,57,58,60,61,62,64,65,66,69,70,72,73,74,75,77,78,80,81,82,85,86,87,89,90)
   nRuoteSel = 1 : ReDim aRuote(1)
   Dim ru
   nSorte = SelEsito' ScegliEsito  'scegliere 1
   nClasseLunghetta = CInt(InputBox("Scegli classe lunghetta di partenza",,UBound(aN) - 3)) 'UBound(aN) - 2)) ' classe di partenza effettiva spesso mlto diversa dalla classe della formazione base di partenza...
   ClasseFin = CInt(InputBox("Scegli classe lunghetta finale",,nClasseLunghetta - 3))' nClasseLunghetta - 2)) 'nClasseLunghetta - 2))
   sortediverifica = CInt(InputBox("sorte di verifica",,2))
   Dim numeroestrazionidaverificare
   numeroestrazionidaverificare = CInt(InputBox("numero estrazioni da verificare",,100))' 0100))
   colpidiverifica = CInt(InputBox("colpi di verifica",,1)) 'numeroestrazionidaverificare - 2))' numeroestrazionidaverificare - 2))
   Dim colpirimanentiminimiottimali
   colpirimanentiminimiottimali = CInt(InputBox("colpi rimanenti minimi ottimali",,3))
   raminvoluto = CInt(InputBox("ritardo minimo",,0))
   ramaxvoluto = CInt(InputBox("ritardo massimo",,estrazioneprogressivaprincipale))'EstrazioneFin))
   Dim iterazionivolute
   Dim iterazioneprogressiva
   iterazionivolute = CInt(InputBox("iterazioni volute",,1)) ' 10))
   colpidiverificainiziali = colpidiverifica
   TipoAlgo = 0
   nSuperficialita = 0
   fin = estrazioneprogressivaprincipale 'EstrazioneFin
   colpirimanentiminimi = fin
   Dim estrazioneprogressiva
   Dim Inizioverifica
   Inizioverifica = fin - numeroestrazionidaverificare
   For ru = 12 To 12
      aRuote(1) = ru
      For iterazioneprogressiva = 1 To iterazionivolute
         For estrazioneprogressiva = Inizioverifica To fin '+1
            contaestrazioni = contaestrazioni + 1
            nLunghetteDaTrov = 1 ' Int(InputBox("Lunghette da trovare","Quantità lunghette",10))
            ReDim Preserve aRuote(nRuoteSel)
            nCicloTeo = CicloTeorico(nClasseLunghetta,nSorte,UBound(aRuote))
            nMoltip = 8
            If Ini <= 0 Then Ini = 1
            TimeStart = Timer
            Call GetLunghettePiuRitardate(aN,aRuote,nClasseLunghetta,nSorte,CollComb,EstrazioneIni,estrazioneprogressiva,nRitMin,nRitMax,nLunghetteDaTrov,TipoAlgo,nSuperficialita)
            Call OrdinaItemCollection(CollComb,"Ritardo",,,- 1)
            For i2 = nClasseLunghetta To ClasseFin Step - 1
               For Each cColonna In CollComb
                  Call GetLunghettePiuRitardate(cColonna.aNum,aRuote,i2,nSorte,CollComb,EstrazioneIni,estrazioneprogressiva,nRitMin,nRitMax,nLunghetteDaTrov,TipoAlgo,nSuperficialita)
                  For Each ccColonna In CollComb
                     Call StatisticaFormazioneTurbo(ccColonna.aNum,aRuote,nSorte,RetRit,RetRitMax,RetIncrRitMax,RetFrq,EstrazioneIni,estrazioneprogressiva)
                     If i2 = ClasseFin And RetRit >= raminvoluto And RetRitMax <= ramaxvoluto Then 'raminvoluto Then
                        Call SplitByChar("." & ccColonna.GetStringaNum & ".",".",vettorexverifica)
                        Call VerificaEsitoTurbo(vettorexverifica,aRuote,estrazioneprogressiva + 1,sortediverifica,colpidiverifica,,esitoverifica,Entroilcolpo,estratti,idestrazioneuscita)
                        If esitoverifica <> "" Then
                           Scrivi esitoverifica & "   " & estratti & "  Colpo=" & Entroilcolpo
                        Else
                           Scrivi
                        End If
                        If esitoverifica <> "" Then
                           casipos = casipos + 1
                           If Entroilcolpo > colpomassimo Then
                              colpomassimo = Entroilcolpo
                           End If
                        Else
                           colpirimanentirispettocolpidiverifica = colpidiverifica -(fin - estrazioneprogressiva)
                           colpirimanentirispettocolpomassimo = colpomassimo -(fin - estrazioneprogressiva)
                           If colpirimanentirispettocolpomassimo < 0 And colpirimanentirispettocolpomassimo <= colpirimanentirispettocolpomassimo Then
                              Valorenegativomassimodicolpirimanentirispettocolpomassimo = colpirimanentirispettocolpomassimo
                              Formazioneconvaloremassimonegativodicolpirestantirispettocolpomassimo = StringaNumeri(vettorexverifica)
                              colpomaxrelativoaicrtnegativi = colpomassimo
                              numeroestrazionidaverificare = numeroestrazionidaverificare + 10
                              colpirimanentirispettocolpidiverifica = EstrazioneFin
                              colpirimanentirispettocolpomassimo = EstrazioneFin
                              casiatt = 0
                              casipos = 0
                              casineg = 0
                              colpomassimo = 0
                              colpirimanentiminimi = EstrazioneFin
                              Formazioneconcolpirimanentiminimi = ""
                              colpomaxrelativo = 0
                              Dim PAUSE
                              For PAUSE = 1 To 1
                                 Call Messaggio(SiglaRuota(ru) & " n. " & contaestrazioni & " di " & numeroestrazionidaverificare & " tot " & " c+ " & casipos & " c- " & casineg & " casia " & casiatt & " clpmax " & colpomassimo & " crtmin " & colpirimanentiminimi & " sdr " & nSorte & " sdv " & sortediverifica & " it " & iterazioneprogressiva)
                              Next
                           End If
                           If colpirimanentirispettocolpidiverifica < 0 Then
                              casineg = casineg + 1
                              colpidiverifica = colpidiverifica + 1
                           Else
                              casiatt = casiatt + 1
                              If casineg = 0 Then
                                 filereportxcollimanzeenonsolo = ".\step1.txt"
                                 Call ScriviFile(filereportxcollimanzeenonsolo,StringaNumeri(vettorexverifica))
                                 Call CloseFileHandle(filereportxcollimanzeenonsolo)
                              End If
                              If colpirimanentirispettocolpidiverifica < colpirimanentiminimi And colpirimanentirispettocolpidiverifica > 0 Then
                                 colpirimanentiminimi = colpirimanentirispettocolpidiverifica
                                 Formazioneconcolpirimanentiminimi = StringaNumeri(vettorexverifica)
                                 colpomaxrelativo = colpomassimo
                                 If colpirimanentirispettocolpidiverifica <= colpirimanentiminimiottimali Then
                                End If
                                 For PAUSE = 1 To 1
                                    Call Messaggio("es. " & estrazioneprogressiva & " n. " & contaestrazioni & " di " & numeroestrazionidaverificare & " tot " & " c+ " & casipos & " c- " & casineg & " casia " & casiatt & " clpmax " & colpomassimo & " crtmin " & colpirimanentiminimi & " sdr " & nSorte & " sdv " & sortediverifica & " it " & iterazioneprogressiva)
                                 Next
                                 ruotaconformazioneconcolpirimamentiminimi = NomeRuota(ru)
                              End If
                              If colpirimanentirispettocolpomassimo < colpirimanentiminimi And colpirimanentirispettocolpomassimo > 0 Then
                                 colpirimanentiminimi = colpirimanentirispettocolpomassimo
                                 Formazioneconcolpirimanentiminimi = StringaNumeri(vettorexverifica)
                                 ruotaconformazioneconcolpirimamentiminimi = NomeRuota(ru)
                                 colpomaxrelativo = colpomassimo
                                 If colpirimanentirispettocolpidiverifica <= colpirimanentiminimiottimali Then
                               End If
                                 For PAUSE = 1 To 1
                                    Call Messaggio(SiglaRuota(ru) & " n. " & contaestrazioni & " di " & numeroestrazionidaverificare & " tot " & " c+ " & casipos & " c- " & casineg & " casia " & casiatt & " clpmax " & colpomassimo & " crtmin " & colpirimanentiminimi & " sdr " & nSorte & " sdv " & sortediverifica & " it " & iterazioneprogressiva)
                                 Next
                              End If
                              If colpirimanentirispettocolpomassimo < 0 Then
                                 numerocasiconcolpirimanentirispettocolpomassimonegativi = numerocasiconcolpirimanentirispettocolpomassimonegativi + 1
                              End If
                           End If
                        End If
                     End If ' x i2=classefin
                  Next
               Next
            Next
            For PAUSE = 1 To 1000
               Call Messaggio(SiglaRuota(ru) & " n. " & contaestrazioni & " di " & numeroestrazionidaverificare & " tot " & " c+ " & casipos & " c- " & casineg & " casia " & casiatt & " clpmax " & colpomassimo & " crtmin " & colpirimanentiminimi & " sdr " & nSorte & " sdv " & sortediverifica & " it " & iterazioneprogressiva)
            Next
            If ScriptInterrotto Then Exit For
         Next ' x estrazioneprogressiva
         contaestrazioni = 0
         If ScriptInterrotto Then Exit For
      Next ' x iterazione progressiva
      If ScriptInterrotto Then Exit For
   Next ' x ru
   Scrivi
   Scrivi "elaborazione con archivio lotto aggiornato al " & GetInfoEstrazione(EstrazioneFin)
   Scrivi "range temporale di verifica da " & GetInfoEstrazione(Inizioverifica) & " a " & GetInfoEstrazione(fin) & " n. tot estrazioni " & numeroestrazionidaverificare
   Scrivi "range temporale di analisi statistica da " & GetInfoEstrazione(Ini) & " a " & GetInfoEstrazione(fin)
   Scrivi "gruppo numerico di base " & StringaNumeri(aN) & " di classe " & UBound(aN)
   Scrivi "iterazioni impostate " & iterazionivolute
   Scrivi "iterazione raggiunta " & iterazioneprogressiva
   Scrivi "ruota analizzata " & StringaNumeri(aRuote)
   Scrivi "classe iniziale " & nClasseLunghetta
   Scrivi "classe finale " & ClasseFin
   Scrivi "sorte di ricerca " & nSorte
   Scrivi "sorte di verifica " & sortediverifica
   Scrivi "valore di ritardo minimo " & raminvoluto
   Scrivi "valore di ritardo massimo " & ramaxvoluto
   Scrivi "colpi di verifica iniziali " & colpidiverificainiziali
   Scrivi "colpi di verifica raggiunti " & colpidiverifica
   Scrivi "colpi rimanenti minimi ottimali " & colpirimanentiminimiottimali
   Scrivi "c+ " & casipos
   Scrivi "c- " & casineg
   Scrivi "ca " & casiatt
   Scrivi "colpo massimo " & colpomassimo
   Scrivi "colpi rimanenti minimi " & colpirimanentiminimi
   Scrivi "colpo massimo relativo " & colpomaxrelativo
   Scrivi "formazione con colpi rimanenti minimi " & Formazioneconcolpirimanentiminimi
   Scrivi "ruota con formazione con colpi rimanenti minimi " & ruotaconformazioneconcolpirimamentiminimi
   Scrivi "numero casi con colpi rimanenti rispetto colpo massimo negativi " & numerocasiconcolpirimanentirispettocolpomassimonegativi
   Scrivi "valore negativo massimo di colpi relativi al colpo massimo " & Valorenegativomassimodicolpirimanentirispettocolpomassimo
   Scrivi "formazione con valore massimo negativo di colpi relativi al colpo massimo " & Formazioneconvaloremassimonegativodicolpirestantirispettocolpomassimo
   Scrivi "colpo massimo relativo ai colpi massimi negativi " & colpomaxrelativoaicrtnegativi
   Scrivi
   Scrivi "tempo di elaborazione " & TempoTrascorso
   Scrivi
   Scrivi "Report dettagliato del numero di colpi"
   Scrivi
   Dim filestep1
   filestep1 = ".\step1.txt"
End Function
Function ScegliClassseLunghetta
   Dim aVoci(30)
   Dim k,i
   For k = 2 To(2 - 1) + UBound(aVoci)
      i = i + 1
      aVoci(i) = k
   Next
   k = ScegliOpzioneMenu(aVoci,5,"Classe lunghetta")
   ScegliClassseLunghetta = Int(aVoci(k))
End Function
Function SelRuote(aRuote)
   Dim t,k,bTutte
   bTutte = False
   t = ScegliRuote(aRuote)
   For k = 1 To t
      If aRuote(k) = TT_ Then
         bTutte = True
         Exit For
      End If
   Next
   If bTutte Then
      ReDim aRuote(10)
      For k = 1 To 10
         aRuote(k) = k
      Next
      SelRuote = 10
   Else
      SelRuote = t
   End If
End Function
Function FormattaSecondi(s)
   Dim hh
   Dim Mm
   Dim Ss
   Dim TimeStr
   hh = s \ 3600
   Mm =(s Mod 3600) \ 60
   Ss = s -((hh * 3600) +(Mm * 60))
   TimeStr = Format2(hh) & ":" & Format2(Mm) & ":" & Format2(Ss)
   FormattaSecondi = TimeStr
End Function
Function SelEsito
   Dim ret
   Dim aVoci
   aVoci = Array("","Estratto","Ambo","Terno","Quaterna","Cinquina")
   ret = ScegliOpzioneMenu(aVoci,2," Analisi per Sorte di : ")
   SelEsito = ret
End Function
Function SelRuota
   Dim ret
   Dim aVoci
   aVoci = Array("","BARI","CAGLIARI","FIRENZE","GENOVA","MILANO","NAPOLI","PALERMO","ROMA","TORINO","VENEZIA","TUTTE","NAZIONALE")
   ret = ScegliOpzioneMenu(aVoci,3," Analizza Ruota di : ")
   SelRuota = ret
End Function

Function quanticolpi(E,qClp,aClp,vettorexverifica,aRuote,estrazioneprogressiva,sortediverifica,colpidiverifica,esitoverifica,entroilcolpo,estratti,idestrazioneuscita)
   Call VerificaEsitoTurbo(vettorexverifica,aRuote,estrazioneprogressiva + 1,sortediverifica,colpidiverifica,,esitoverifica,entroilcolpo,estratti,idestrazioneuscita)
   If esitoverifica <> "" Then
      Scrivi esitoverifica & "   " & estratti & "  Colpo=" & entroilcolpo
      aClp(entroilcolpo) = aClp(entroilcolpo) + 1
   Else
      Scrivi
   End If
End Function

terzo script che richiama gli altri due da nominare come si vuole :) :

Codice:
'script 2 by lottotom75

Option Explicit
Includi ".\script0xinclusione-x1clp.ls"
Includi ".\script1xinclusione-b-senzatabella-conestrazioneprogressivaprincipale-entrocolpi-x1clp.ls"
Sub Main
   Dim Ini
   Dim estrazioneprogressivaprincipale
   Dim quantestrazioniverificare
   Ini = EstrazioneIni
   quantestrazioniverificare = CInt(InputBox("quante estrazioni verificare?",,3))
   Dim Inizioverifica
   Inizioverifica = EstrazioneFin - quantestrazioniverificare
   Dim fineverifica
   fineverifica = EstrazioneFin
   Scrivi
   Scrivi "Range temporale analizzato e verificato: dal " & GetInfoEstrazione(Inizioverifica) & " al " & GetInfoEstrazione(fineverifica)
   Scrivi "Numero complessivo delle ultime estrazione esaminate: " & fineverifica - Inizioverifica
   Scrivi "Estrazione di partenza per tutte le analisi effettuate " & GetInfoEstrazione(Ini)
   Scrivi
   For estrazioneprogressivaprincipale = Inizioverifica To fineverifica
      Call Step0
      Scrivi
      Scrivi "<font color=red size=3>estrazione esaminata " & GetInfoEstrazione(estrazioneprogressivaprincipale) & "</font>"
      Scrivi
      Call Step1(estrazioneprogressivaprincipale)
      Dim filestep3
      filestep3 = "step3.txt"
      Dim filestep3pathfull
      filestep3pathfull = ".\step3.txt"
      Dim k
      Dim nr
      If FileEsistente(filestep3pathfull) Then
         Call Messaggio("Lettura file di testo da file step3")
         ReDim aRighe(0)
         Call LeggiRigheFileDiTesto(filestep3pathfull,aRighe)
         For k = 0 To UBound(aRighe)
            If aRighe(k) <> "" Then
               Call Replace(StringaNumeri(aRighe(k)),".","",1)
               Call SplitByChar(aRighe(k),".",nr)
               Dim vettorenumeristep1pulitodaipunti
               Dim stringapulita
               Dim Stringadapulire
               Stringadapulire = StringaNumeri(nr)
               Dim lenght
               lenght = Len(Stringadapulire)
               Dim captured_string
               captured_string = Mid(Stringadapulire,2,lenght)'left(stringapulita)
               Dim lenght2
               lenght2 = Len(captured_string)
               Dim captured_string2
               captured_string2 = Mid(captured_string,1,lenght2 - 1)
               Call SplitByChar(captured_string2,".",vettorenumeristep1pulitodaipunti)
            End If
         Next
         'End If
      End If
   Next ' x range temporale di verifica
End Sub

Se lo esegui a partire dallo script 2 (il terzo qui riportato ovvero quello che richiama gli altri due) puoi scegliere le estrazioni di verifica... e come vedrai se imposti di analizzare le ultime 3 estrazioni ad esempio per le penultime due non ci saranno casi (ca) in corso nè quindi formazioni con colpi rimanenti pari a 1.. (crtmin) necessarie appunto per proseguire...

Grazie 1000 fin d'ora a te claudio a te ilegend o a chiunque riuscirà ad ottimizzarlo in tal senso!

👋🧑‍🍳🙂
 
Ultima modifica:
Mi spiace, tom , ma al momento ho tropi pensieri per concentrarmi sugli script e Mi collego solo per salutarvi .
Cmq claudio ha ragione, si può fare tutto. Se verifica esito non fa al caso tuo allora ne costruisci una adatta.
Ciao:)
 
Mi spiace, tom , ma al momento ho tropi pensieri per concentrarmi sugli script e Mi collego solo per salutarvi .
Cmq claudio ha ragione, si può fare tutto. Se verifica esito non fa al caso tuo allora ne costruisci una adatta.
Ciao:)

Si la fai facile... tu mito :eek:
Ti auguro di dipanare i tuoi troppi pensieri il + in fretta possibile proprio come fai magistralmente con la risoluzione e creazione dei tuoi favolosi script ;) A presto grandissimo 💪👋🙂
 
Tom scusa, ma entrare nella logica dei tuoi scrip è da "farsi venire il mal di testa"
riduci il problema in uno script + semplice e sarò felice di aiutarti.
Ripeto: tutto si può fare.
Ciao
 
Tom scusa, ma entrare nella logica dei tuoi scrip è da "farsi venire il mal di testa"
riduci il problema in uno script + semplice e sarò felice di aiutarti.
Ripeto: tutto si può fare.
Ciao
Quanto sei difficile... proff... 🥲😆😉
Ad ogni modo provo a riportare tutto in un unico script e poi te lo riposto...

👋🧑‍🍳🙂

ecco lo script unico che li include tutti e tre testato e funzionante... (tranne il problemino da risolvere ovviamente...) 👇🧑‍🍳

Codice:
Option Explicit
Sub Main
' script main by lottotom75
   Dim Ini
   Dim estrazioneprogressivaprincipale
   Dim quantestrazioniverificare
   Ini = EstrazioneIni
   quantestrazioniverificare = CInt(InputBox("quante estrazioni verificare?",,3))
   Dim Inizioverifica
   Inizioverifica = EstrazioneFin - quantestrazioniverificare
   Dim fineverifica
   fineverifica = EstrazioneFin
   Scrivi
   Scrivi "Range temporale analizzato e verificato: dal " & GetInfoEstrazione(Inizioverifica) & " al " & GetInfoEstrazione(fineverifica)
   Scrivi "Numero complessivo delle ultime estrazione esaminate: " & fineverifica - Inizioverifica
   Scrivi "Estrazione di partenza per tutte le analisi effettuate " & GetInfoEstrazione(Ini)
   Scrivi
   For estrazioneprogressivaprincipale = Inizioverifica To fineverifica
      Call Step0
      Scrivi
      Scrivi "<font color=red size=3>estrazione esaminata " & GetInfoEstrazione(estrazioneprogressivaprincipale) & "</font>"
      Scrivi
      Call Step1(estrazioneprogressivaprincipale)
      Dim filestep3
      filestep3 = "step3.txt"
      Dim filestep3pathfull
      filestep3pathfull = ".\step3.txt"
      Dim k
      Dim nr
      If FileEsistente(filestep3pathfull) Then
         Call Messaggio("Lettura file di testo da file step3")
         ReDim aRighe(0)
         Call LeggiRigheFileDiTesto(filestep3pathfull,aRighe)
         For k = 0 To UBound(aRighe)
            If aRighe(k) <> "" Then
               Call Replace(StringaNumeri(aRighe(k)),".","",1)
               Call SplitByChar(aRighe(k),".",nr)
               Dim vettorenumeristep1pulitodaipunti
               Dim stringapulita
               Dim Stringadapulire
               Stringadapulire = StringaNumeri(nr)
               Dim lenght
               lenght = Len(Stringadapulire)
               Dim captured_string
               captured_string = Mid(Stringadapulire,2,lenght)'left(stringapulita)
               Dim lenght2
               lenght2 = Len(captured_string)
               Dim captured_string2
               captured_string2 = Mid(captured_string,1,lenght2 - 1)
               Call SplitByChar(captured_string2,".",vettorenumeristep1pulitodaipunti)
            End If
         Next
         'End If
      End If
   Next ' x range temporale di verifica
End Sub
' script 0 by lottotom75
Function Step0
   Dim fileStep1
   Dim fileStep2
   Dim fileStep3
   Dim fileStep4
   Dim fileStep5
   fileStep1 = ".\step1.txt"
   fileStep2 = ".\step2.txt"
   fileStep3 = ".\step3.txt"
   fileStep4 = ".\step4.txt"
   fileStep5 = ".\step5.txt"
   If FileEsistente(fileStep1) Then
      Call EliminaFile(fileStep1)
   End If
   If FileEsistente(fileStep2) Then
      Call EliminaFile(fileStep2)
   End If
   If FileEsistente(fileStep3) Then
      Call EliminaFile(fileStep3)
   End If
   If FileEsistente(fileStep4) Then
      Call EliminaFile(fileStep4)
   End If
   If FileEsistente(fileStep5) Then
      Call EliminaFile(fileStep5)
   End If
End Function
' script 1 by lottotom75
Function Step1(estrazioneprogressivaprincipale)
   Dim IdEstr,ncs
   Dim E,qClp,nColpo,Esi
   qClp = colpidiverifica '18
   ReDim aClp(qClp)
   For E = 1 To colpidiverifica ' 18
      aClp(E) = 0
   Next
   ncs = 0
   E = 0
   Dim nSorte,aRuote,Ini,fin,sMsg,nMoltip,nTrov,nNumSel
   Dim nCicloTeo,nRitMax,nRitMin,nClasseLunghetta,nRuoteSel,nLunghetteDaTrov,i2,ccColonna,ClasseFin
   Dim TimeStart
   Dim k,CollComb,cColonna
   Dim aN
   Dim TipoAlgo
   Dim RetRit,RetRitMax,RetIncrRitMax,RetFrq
   Dim nSuperficialita
   Dim vettorexverifica
   Dim sortediverifica,colpidiverifica,esitoverifica,estratti,idestrazioneuscita
   Dim Entroilcolpo
   Dim casipos
   Dim casineg
   Dim casiatt
   Dim contaestrazioni
   Dim colpomassimo
   Dim colpirimanentirispettocolpomassimo
   Dim colpirimanentirispettocolpidiverifica
   Dim numerocasiconcolpirimanentirispettocolpomassimonegativi
   Dim colpirimanentiminimi
   Dim Formazioneconcolpirimanentiminimi
   Dim ruotaconformazioneconcolpirimamentiminimi
   Dim colpidiverificainiziali
   Dim Valorenegativomassimodicolpirimanentirispettocolpomassimo
   Valorenegativomassimodicolpirimanentirispettocolpomassimo = 0
   Dim Formazioneconvaloremassimonegativodicolpirestantirispettocolpomassimo
   Dim raminvoluto
   Dim ramaxvoluto
   Dim colpomaxrelativo
   Dim colpomaxrelativoaicrtnegativi
   Dim filereportxcollimanzeenonsolo
   filereportxcollimanzeenonsolo = ".\step1.txt"
   Call Scrivi
   Call Scrivi("Elaborazione eseguita con archivio lotto aggiornato al: " & giorno(EstrazioneFin) & "-" & Mese(EstrazioneFin) & "-" & Anno(EstrazioneFin))
   Call Scrivi
   nTrov = 0
   
   aN = Array(0,2,4,5,6,7,10,11,13,15,16,17,18,19,20,21,22,23,25,26,27,28,29,31,32,33,35,36,37,38,39,40,42,43,44,45,46,47,49,50,51,52,53,54,55,56,57,58,60,61,62,64,65,66,69,70,72,73,74,75,77,78,80,81,82,85,86,87,89,90)
   nRuoteSel = 1 : ReDim aRuote(1)
   Dim ru
   nSorte = SelEsito' ScegliEsito  'scegliere 1
   nClasseLunghetta = CInt(InputBox("Scegli classe lunghetta di partenza",,UBound(aN) - 3)) 'UBound(aN) - 2)) ' classe di partenza effettiva spesso mlto diversa dalla classe della formazione base di partenza...
   ClasseFin = CInt(InputBox("Scegli classe lunghetta finale",,nClasseLunghetta - 3))' nClasseLunghetta - 2)) 'nClasseLunghetta - 2))
   sortediverifica = CInt(InputBox("sorte di verifica",,2))
   Dim numeroestrazionidaverificare
   numeroestrazionidaverificare = CInt(InputBox("numero estrazioni da verificare",,100))' 0100))
   colpidiverifica = CInt(InputBox("colpi di verifica",,1)) 'numeroestrazionidaverificare - 2))' numeroestrazionidaverificare - 2))
   Dim colpirimanentiminimiottimali
   colpirimanentiminimiottimali = CInt(InputBox("colpi rimanenti minimi ottimali",,3))
   raminvoluto = CInt(InputBox("ritardo minimo",,0))
   ramaxvoluto = CInt(InputBox("ritardo massimo",,estrazioneprogressivaprincipale))'EstrazioneFin))
   Dim iterazionivolute
   Dim iterazioneprogressiva
   iterazionivolute = CInt(InputBox("iterazioni volute",,1)) ' 10))
   colpidiverificainiziali = colpidiverifica
   TipoAlgo = 0
   nSuperficialita = 0
   fin = estrazioneprogressivaprincipale 'EstrazioneFin
   colpirimanentiminimi = fin
   Dim estrazioneprogressiva
   Dim Inizioverifica
   Inizioverifica = fin - numeroestrazionidaverificare
   For ru = 12 To 12
      aRuote(1) = ru
      For iterazioneprogressiva = 1 To iterazionivolute
         For estrazioneprogressiva = Inizioverifica To fin '+1
            contaestrazioni = contaestrazioni + 1
            nLunghetteDaTrov = 1 ' Int(InputBox("Lunghette da trovare","Quantità lunghette",10))
            ReDim Preserve aRuote(nRuoteSel)
            nCicloTeo = CicloTeorico(nClasseLunghetta,nSorte,UBound(aRuote))
            nMoltip = 8
            If Ini <= 0 Then Ini = 1
            TimeStart = Timer
            Call GetLunghettePiuRitardate(aN,aRuote,nClasseLunghetta,nSorte,CollComb,EstrazioneIni,estrazioneprogressiva,nRitMin,nRitMax,nLunghetteDaTrov,TipoAlgo,nSuperficialita)
            Call OrdinaItemCollection(CollComb,"Ritardo",,,- 1)
            For i2 = nClasseLunghetta To ClasseFin Step - 1
               For Each cColonna In CollComb
                  Call GetLunghettePiuRitardate(cColonna.aNum,aRuote,i2,nSorte,CollComb,EstrazioneIni,estrazioneprogressiva,nRitMin,nRitMax,nLunghetteDaTrov,TipoAlgo,nSuperficialita)
                  For Each ccColonna In CollComb
                     Call StatisticaFormazioneTurbo(ccColonna.aNum,aRuote,nSorte,RetRit,RetRitMax,RetIncrRitMax,RetFrq,EstrazioneIni,estrazioneprogressiva)
                     If i2 = ClasseFin And RetRit >= raminvoluto And RetRitMax <= ramaxvoluto Then 'raminvoluto Then
                        Call SplitByChar("." & ccColonna.GetStringaNum & ".",".",vettorexverifica)
                        Call VerificaEsitoTurbo(vettorexverifica,aRuote,estrazioneprogressiva + 1,sortediverifica,colpidiverifica,,esitoverifica,Entroilcolpo,estratti,idestrazioneuscita)
                        If esitoverifica <> "" Then
                           Scrivi esitoverifica & "   " & estratti & "  Colpo=" & Entroilcolpo
                        Else
                           Scrivi
                        End If
                        If esitoverifica <> "" Then
                           casipos = casipos + 1
                           If Entroilcolpo > colpomassimo Then
                              colpomassimo = Entroilcolpo
                           End If
                        Else
                           colpirimanentirispettocolpidiverifica = colpidiverifica -(fin - estrazioneprogressiva)
                           colpirimanentirispettocolpomassimo = colpomassimo -(fin - estrazioneprogressiva)
                           If colpirimanentirispettocolpomassimo < 0 And colpirimanentirispettocolpomassimo <= colpirimanentirispettocolpomassimo Then
                              Valorenegativomassimodicolpirimanentirispettocolpomassimo = colpirimanentirispettocolpomassimo
                              Formazioneconvaloremassimonegativodicolpirestantirispettocolpomassimo = StringaNumeri(vettorexverifica)
                              colpomaxrelativoaicrtnegativi = colpomassimo
                              numeroestrazionidaverificare = numeroestrazionidaverificare + 10
                              colpirimanentirispettocolpidiverifica = EstrazioneFin
                              colpirimanentirispettocolpomassimo = EstrazioneFin
                              casiatt = 0
                              casipos = 0
                              casineg = 0
                              colpomassimo = 0
                              colpirimanentiminimi = EstrazioneFin
                              Formazioneconcolpirimanentiminimi = ""
                              colpomaxrelativo = 0
                              Dim PAUSE
                              For PAUSE = 1 To 1
                                 Call Messaggio(SiglaRuota(ru) & " n. " & contaestrazioni & " di " & numeroestrazionidaverificare & " tot " & " c+ " & casipos & " c- " & casineg & " casia " & casiatt & " clpmax " & colpomassimo & " crtmin " & colpirimanentiminimi & " sdr " & nSorte & " sdv " & sortediverifica & " it " & iterazioneprogressiva)
                              Next
                           End If
                           If colpirimanentirispettocolpidiverifica < 0 Then
                              casineg = casineg + 1
                              colpidiverifica = colpidiverifica + 1
                           Else
                              casiatt = casiatt + 1
                              If casineg = 0 Then
                                 filereportxcollimanzeenonsolo = ".\step1.txt"
                                 Call ScriviFile(filereportxcollimanzeenonsolo,StringaNumeri(vettorexverifica))
                                 Call CloseFileHandle(filereportxcollimanzeenonsolo)
                              End If
                              If colpirimanentirispettocolpidiverifica < colpirimanentiminimi And colpirimanentirispettocolpidiverifica > 0 Then
                                 colpirimanentiminimi = colpirimanentirispettocolpidiverifica
                                 Formazioneconcolpirimanentiminimi = StringaNumeri(vettorexverifica)
                                 colpomaxrelativo = colpomassimo
                                 If colpirimanentirispettocolpidiverifica <= colpirimanentiminimiottimali Then
                                 End If
                                 For PAUSE = 1 To 1
                                    Call Messaggio("es. " & estrazioneprogressiva & " n. " & contaestrazioni & " di " & numeroestrazionidaverificare & " tot " & " c+ " & casipos & " c- " & casineg & " casia " & casiatt & " clpmax " & colpomassimo & " crtmin " & colpirimanentiminimi & " sdr " & nSorte & " sdv " & sortediverifica & " it " & iterazioneprogressiva)
                                 Next
                                 ruotaconformazioneconcolpirimamentiminimi = NomeRuota(ru)
                              End If
                              If colpirimanentirispettocolpomassimo < colpirimanentiminimi And colpirimanentirispettocolpomassimo > 0 Then
                                 colpirimanentiminimi = colpirimanentirispettocolpomassimo
                                 Formazioneconcolpirimanentiminimi = StringaNumeri(vettorexverifica)
                                 ruotaconformazioneconcolpirimamentiminimi = NomeRuota(ru)
                                 colpomaxrelativo = colpomassimo
                                 If colpirimanentirispettocolpidiverifica <= colpirimanentiminimiottimali Then
                                 End If
                                 For PAUSE = 1 To 1
                                    Call Messaggio(SiglaRuota(ru) & " n. " & contaestrazioni & " di " & numeroestrazionidaverificare & " tot " & " c+ " & casipos & " c- " & casineg & " casia " & casiatt & " clpmax " & colpomassimo & " crtmin " & colpirimanentiminimi & " sdr " & nSorte & " sdv " & sortediverifica & " it " & iterazioneprogressiva)
                                 Next
                              End If
                              If colpirimanentirispettocolpomassimo < 0 Then
                                 numerocasiconcolpirimanentirispettocolpomassimonegativi = numerocasiconcolpirimanentirispettocolpomassimonegativi + 1
                              End If
                           End If
                        End If
                     End If ' x i2=classefin
                  Next
               Next
            Next
            For PAUSE = 1 To 1000
               Call Messaggio(SiglaRuota(ru) & " n. " & contaestrazioni & " di " & numeroestrazionidaverificare & " tot " & " c+ " & casipos & " c- " & casineg & " casia " & casiatt & " clpmax " & colpomassimo & " crtmin " & colpirimanentiminimi & " sdr " & nSorte & " sdv " & sortediverifica & " it " & iterazioneprogressiva)
            Next
            If ScriptInterrotto Then Exit For
         Next ' x estrazioneprogressiva
         contaestrazioni = 0
         If ScriptInterrotto Then Exit For
      Next ' x iterazione progressiva
      If ScriptInterrotto Then Exit For
   Next ' x ru
   Scrivi
   Scrivi "elaborazione con archivio lotto aggiornato al " & GetInfoEstrazione(EstrazioneFin)
   Scrivi "range temporale di verifica da " & GetInfoEstrazione(Inizioverifica) & " a " & GetInfoEstrazione(fin) & " n. tot estrazioni " & numeroestrazionidaverificare
   Scrivi "range temporale di analisi statistica da " & GetInfoEstrazione(Ini) & " a " & GetInfoEstrazione(fin)
   Scrivi "gruppo numerico di base " & StringaNumeri(aN) & " di classe " & UBound(aN)
   Scrivi "iterazioni impostate " & iterazionivolute
   Scrivi "iterazione raggiunta " & iterazioneprogressiva
   Scrivi "ruota analizzata " & StringaNumeri(aRuote)
   Scrivi "classe iniziale " & nClasseLunghetta
   Scrivi "classe finale " & ClasseFin
   Scrivi "sorte di ricerca " & nSorte
   Scrivi "sorte di verifica " & sortediverifica
   Scrivi "valore di ritardo minimo " & raminvoluto
   Scrivi "valore di ritardo massimo " & ramaxvoluto
   Scrivi "colpi di verifica iniziali " & colpidiverificainiziali
   Scrivi "colpi di verifica raggiunti " & colpidiverifica
   Scrivi "colpi rimanenti minimi ottimali " & colpirimanentiminimiottimali
   Scrivi "c+ " & casipos
   Scrivi "c- " & casineg
   Scrivi "ca " & casiatt
   Scrivi "colpo massimo " & colpomassimo
   Scrivi "colpi rimanenti minimi " & colpirimanentiminimi
   Scrivi "colpo massimo relativo " & colpomaxrelativo
   Scrivi "formazione con colpi rimanenti minimi " & Formazioneconcolpirimanentiminimi
   Scrivi "ruota con formazione con colpi rimanenti minimi " & ruotaconformazioneconcolpirimamentiminimi
   Scrivi "numero casi con colpi rimanenti rispetto colpo massimo negativi " & numerocasiconcolpirimanentirispettocolpomassimonegativi
   Scrivi "valore negativo massimo di colpi relativi al colpo massimo " & Valorenegativomassimodicolpirimanentirispettocolpomassimo
   Scrivi "formazione con valore massimo negativo di colpi relativi al colpo massimo " & Formazioneconvaloremassimonegativodicolpirestantirispettocolpomassimo
   Scrivi "colpo massimo relativo ai colpi massimi negativi " & colpomaxrelativoaicrtnegativi
   Scrivi
   Scrivi "tempo di elaborazione " & TempoTrascorso
   Scrivi
   Scrivi "Report dettagliato del numero di colpi"
   Scrivi
   Dim filestep1
   filestep1 = ".\step1.txt"
End Function
Function ScegliClassseLunghetta
   Dim aVoci(30)
   Dim k,i
   For k = 2 To(2 - 1) + UBound(aVoci)
      i = i + 1
      aVoci(i) = k
   Next
   k = ScegliOpzioneMenu(aVoci,5,"Classe lunghetta")
   ScegliClassseLunghetta = Int(aVoci(k))
End Function
Function SelRuote(aRuote)
   Dim t,k,bTutte
   bTutte = False
   t = ScegliRuote(aRuote)
   For k = 1 To t
      If aRuote(k) = TT_ Then
         bTutte = True
         Exit For
      End If
   Next
   If bTutte Then
      ReDim aRuote(10)
      For k = 1 To 10
         aRuote(k) = k
      Next
      SelRuote = 10
   Else
      SelRuote = t
   End If
End Function
Function FormattaSecondi(s)
   Dim hh
   Dim Mm
   Dim Ss
   Dim TimeStr
   hh = s \ 3600
   Mm =(s Mod 3600) \ 60
   Ss = s -((hh * 3600) +(Mm * 60))
   TimeStr = Format2(hh) & ":" & Format2(Mm) & ":" & Format2(Ss)
   FormattaSecondi = TimeStr
End Function
Function SelEsito
   Dim ret
   Dim aVoci
   aVoci = Array("","Estratto","Ambo","Terno","Quaterna","Cinquina")
   ret = ScegliOpzioneMenu(aVoci,2," Analisi per Sorte di : ")
   SelEsito = ret
End Function
Function SelRuota
   Dim ret
   Dim aVoci
   aVoci = Array("","BARI","CAGLIARI","FIRENZE","GENOVA","MILANO","NAPOLI","PALERMO","ROMA","TORINO","VENEZIA","TUTTE","NAZIONALE")
   ret = ScegliOpzioneMenu(aVoci,3," Analizza Ruota di : ")
   SelRuota = ret
End Function
Function quanticolpi(E,qClp,aClp,vettorexverifica,aRuote,estrazioneprogressiva,sortediverifica,colpidiverifica,esitoverifica,entroilcolpo,estratti,idestrazioneuscita)
   Call VerificaEsitoTurbo(vettorexverifica,aRuote,estrazioneprogressiva + 1,sortediverifica,colpidiverifica,,esitoverifica,entroilcolpo,estratti,idestrazioneuscita)
   If esitoverifica <> "" Then
      Scrivi esitoverifica & "   " & estratti & "  Colpo=" & entroilcolpo
      aClp(entroilcolpo) = aClp(entroilcolpo) + 1
   Else
      Scrivi
   End If
End Function

Adesso la palla passa a te ;) Grazie! (y)👋🙂
 
Tom scusa, ma entrare nella logica dei tuoi scrip è da "farsi venire il mal di testa"
riduci il problema in uno script + semplice e sarò felice di aiutarti.
Ripeto: tutto si può fare.
Ciao

Function Step0 perchè la lasci nello script che devo leggere? solo per confondremi?
Ti ho chiesto uno script + semplice non l'accorpamento delle funzioni anche inutili nello script.
quindi segui una logica semplice.

Spiega il processo che fa lo script in poche parole altrimenti non ne usciamo, non mi interessano if e varie che sai solo tu cosa devono condizionare .
ti faccio un esmpio:

Scelgo un tot di numeri ( va bene anche un array)
definisco quantità verifiche = 20
parto dall'estrazione fin - verifiche sino alla estrazione fin
verifico l'esito ad ambi dei numeri per colpi???? ..... continua tu

fai anche un esempio pratico
saluti
 
Function Step0 perchè la lasci nello script che devo leggere? solo per confondremi?
Ti ho chiesto uno script + semplice non l'accorpamento delle funzioni anche inutili nello script.
quindi segui una logica semplice.

Spiega il processo che fa lo script in poche parole altrimenti non ne usciamo, non mi interessano if e varie che sai solo tu cosa devono condizionare .
ti faccio un esmpio:

Scelgo un tot di numeri ( va bene anche un array)
definisco quantità verifiche = 20
parto dall'estrazione fin - verifiche sino alla estrazione fin
verifico l'esito ad ambi dei numeri per colpi???? ..... continua tu

fai anche un esempio pratico
saluti

🤦‍♂️:LOL:

Ipotizzo che questa tua "confusione" derivi dal fatto che con l'archivio aggiornato all'ultima estrazione il report finale non ti da risultati nemmeno per l'ultima estrazione e non solo per le penultime... Questo perchè la riduzione si svolge da 69 a 66 a 63 in quasi tutti i casi ma a volte è necessario mettere la classe intermedia di un valore diverso... Il gruppo 69 abs è sempre lo stesso ed infatti è implementato all'interno dello script (big regalino... sistemistico for all :) ) mentre appunto la classe 66 intermedia nello sviluppo riduzionale può variare a seconda che vi siano risultanze o meno... La riduzione avviene a step 1 riducendo da 69 a 68 da 68 a 67 ecc... scegliendo sempre ra min x A su ruota target (NZ). Nel contempo la verifica avviene a colpo... o meglio la macro classe finale impostata e rilevata (63) fa si che lo sfaldamento ipotizzato avvenga a colpo anche se i colpi di verifica impostati possono essere molti di +. Per quanto riguarda il nome delle funzioni sub main step 0 e step 1 sono solo nomi di funzioni e la sub main richiama semplicemente le altre due secondarie... Per quanto riguarda l'esempio che mi hai richiesto basta che fai girare lo script... e inserisci al secondo input il valore 62 e lasci come numero di ultime estrazioni da verificare il valore 3; così facendo vedrai che per l'ultima estrazione (la 10038) l'output ti darà la 63ina finale con colpi restanti teorici per almeno 2 punti a colpo su NZ pari a 1 o al massimo 2. Il problema come potrai vedere facendo girare lo script è che per le precedenti due estrazioni non ci saranno risultati in corso... proprio perchè la verifica avviene purtroppo sempre fino alla fine dell'archivio estrazionale aggiornato... mentre dovrebbe poterla fare anche con le estrazioni precedenti con l'archivio "troncato" virtualmente...

saluti 🧑‍🍳🙂
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 11 gennaio 2025
    Bari
    73
    43
    01
    58
    81
    Cagliari
    69
    60
    18
    02
    10
    Firenze
    25
    32
    18
    55
    54
    Genova
    48
    05
    40
    34
    69
    Milano
    10
    07
    70
    44
    79
    Napoli
    11
    89
    01
    34
    80
    Palermo
    37
    80
    82
    44
    77
    Roma
    78
    04
    38
    39
    56
    Torino
    08
    13
    30
    27
    24
    Venezia
    56
    75
    36
    18
    70
    Nazionale
    63
    83
    19
    31
    80
    Estrazione Simbolotto
    Bari
    35
    34
    12
    23
    20

Ultimi Messaggi

Indietro
Alto