Novità

Per dirla alla "Austin Powers" sarebbe...

LuigiB;n1937249 ha scritto:
Ciao , in questa versione delllo script ho ggiunto la scelta di esaminare le colonne da un file txt oppure da uno sviluppo casuale.
In questo secondo caso uno lancia lo script dice quante colonne vuole trovare e aspetta che lo script abbia finito oppure lo blocca prima quando vede che nonostante l'attesa qualche colonna è gia stata trovata ma non ancora tutte quelle che si volevano..

Codice:
Option Explicit
Class clsLunghetta
Private aNumeri ' contiene i numeri della lunghetta
Private mInizio,mFine,aRuote,mSorte ' parametri per il range analisi
Private mClasse ' contine la classe della lunghetta
Private aElencoRit ' conterra l'elenco dei ritardi per la lunghetta
Private aIdEstrElencoRit ' conterra l'elenco dei ritardi per la lunghetta
Private aElencoIncrRitMax ' contiene l'elnco degli incrementi del ritardo max
Private aIdEstrIncrRitMax ' conterra l'elenco degli id estrazione in
' cui si è registrato l'incremento del ritmax conosciuto
Private aRitardiAllIncremento ' contiene il valore del ritardo all'idestrazione in cui
' si è verificato l'incremento
Private mRitardo,mRitardoMax,mIncrRitMax,mFrequenza ' valori statistici
Public Property Get Ritardo
Ritardo = mRitardo
End Property
Public Property Get RitardoMax
RitardoMax = mRitardoMax
End Property
Public Property Get IncrRitMax
IncrRitMax = mIncrRitMax
End Property
Public Property Get Frequenza
Frequenza = mFrequenza
End Property
Public Property Get LunghettaString
LunghettaString = StringaNumeri (aNumeri)
End Property
' inizializza le proprietà dell'oggetto
Sub Init(sLunghetta,sChrSep,RangeInizio,RangeFine,vetRuote,SorteInGioco)
' acquisisco i parametri per l'analisi
mInizio = RangeInizio
mFine = RangeFine
aRuote = vetRuote
mSorte = SorteInGioco
' alimento il vettore con i numeri della lunghetta
Call AlimentaVettoreLunghetta(sLunghetta,sChrSep)
' calcolo l'elenco dei ritardi
Call ElencoRitardiTurbo(aNumeri,aRuote,mSorte,mInizio,mFine,aElencoRit,aIdEstrElencoRit)
' alimento il vettore che contien l'elenco degli incrementi rit max
Call AlimentaVettoreIncrRitMax
End Sub
' esegue il calcolo dei valori statistici della lunghetta
Sub EseguiStatistica
Call StatisticaFormazioneTurbo(aNumeri,aRuote,mSorte,mRitardo,mRitardoMax,mIncrRitMax,mFrequenza,mInizio,mFine)
End Sub
Private Sub AlimentaVettoreLunghetta(sLunghetta,sChrSep)
Dim k
If IsArray(sLunghetta) Then
' se la lunghetta è gia un array lo copio nel vettore locale dei numeri
ReDim aNumeri(UBound(sLunghetta))
For k = 1 To UBound(sLunghett  a)
aNumeri(k) = sLunghetta(k)
Next
Else
' antepongo un carattere separatore per fare in modo che
' aNumeri si valorizzi dall'indice 1 (senno si sarebeb valorizzato dall'indice 0)
Call SplitByChar((sChrSep & sLunghetta),sChrSep,aNumeri)
End If
' valorizzo la classe della lunghetta
mClasse = UBound(aNumeri)
End Sub
Private Sub AlimentaVettoreIncrRitMax
Dim nRitMax,nIncr,nId,k
nId = 0
' inizializzo il vettore a 0 elementi
ReDim aElencoIncrRitMax(0)
ReDim aIdEstrIncrRitMax(0)
ReDim aRitardiAllIncremento(0)
' ciclo sul vettore dei ritardi
For k = 1 To UBound(aElencoRit)
' se il ritardo corrente supera il ritmax attuale..
If aElencoRit(k) > nRitMax Then
If nRitMax > 0 Then
' se il ritmax attuale è >0 (ivvero ne esiste uno)
' calcolo di quanto si è incrementato
nIncr = aElencoRit(k) - nRitMax
' incremento il contatore dei valori trovati
nId = nId + 1
' ridimensiono il vettore mantenendo i valori precedenti ma
' aggiungendone uno
ReDim Preserve aElencoIncrRitMax(nId)
' memorizzo il valore
aElencoIncrRitMax(nId) = nIncr
' ridimensiono il vettore mantnendo i valori precedenti ma
' aggiungendone uno
ReDim Preserve aIdEstrIncrRitMax(nId)
' memorizzo l'id dell'estrazione dove si è avuto l'incremento
aIdEstrIncrRitMax(nId) = aIdEstrElencoRit(k)
' ridimensiono il vettore mantnendo i valori precedenti ma
' aggiungendone uno
ReDim Preserve aRitardiAllIncremento(nId)
' memorizzo il valore del ritardo all'id dell'estrazione dove si è avuto l'incremento
aRitardiAllIncremento(nId) = aElencoRit(k)
End If
nRitMax = aElencoRit(k)
End If
Next
End Sub
Function IsCondizioneRispettata
' verifica che l'incremento dell'ultimo ritmax sia uguale al massimo incr rit max conosciuto.
Dim nUpper
nUpper = UBound(aElencoIncrRitMax)
If aIdEstrIncrRitMax(nUpper) = mFine Then
IsCondizioneRispettata =(aElencoIncrRitMax(nUpper) >= MassimoV(aElencoIncrRitMax,1,nUpper - 1))
Else
IsCondizioneRispettata = False
End If
End Function
Sub DisegnaGraficoIncrRitMax
Dim x,y,k
Dim nValoreMaxX,nValoreMaxY,nValoreMinX
Dim nStepX,nStepY
Dim nUpperVetIncrRit
nValoreMinX = MinimoV(aIdEstrIncrRitMax,1)
nValoreMaxX = aIdEstrIncrRitMax(UBound(aIdEstrIncrRitMax))
nValoreMaxY = MassimoV(aElencoRit,1)
nStepX =(nValoreMaxX -(mInizio - 1)) \10
nStepY = nValoreMaxY \10
Call PreparaGrafico("Formaziione " & StringaNumeri(aNumeri),nValoreMinX,nValoreMaxX,0,nValoreMaxY,nStepX,nStepY)
nUpperVetIncrRit = UBound(aElencoIncrRitMax)
' linea dell'incremento rit max
ReDim aV(nUpperVetIncrRit - 1,2)
For k = 1 To nUpperVetIncrRit
x = aIdEstrIncrRitMax(k)
y = aElencoIncrRitMax(k)
aV(k - 1,1) = x
aV(k - 1,2) = y
Next
Call DisegnaLineaGrafico(aV,vbRed,"IncrRitMax")
' linea dell' rit max
ReDim aV(nUpperVetIncrRit - 1,2)
For k = 1 To nUpperVetIncrRit
x = aIdEstrIncrRitMax(k)
y = aRitardiAllIncremento(k)
aV(k - 1,1) = x
aV(k - 1,2) = y
Next
Call DisegnaLineaGrafico(aV,vbBlue,"RitMax")
' scrive grafico nell'output
Call InserisciGrafico
End Sub
End Class
Sub Main
Dim Inizio,Fine,aRuote,Sorte
Inizio = EstrazioneIni
Fine = EstrazioneFin
Sorte = ScegliEsito
Call ScegliRuote(aRuote,Nothing)
If(Fine > Inizio) And UBound(aRuote) > 0 And Sorte > 0 Then
Select Case ScegliTipoSviluppo
Case 1
Call AnalisiLunghetteFromFileTxt(Inizio,Fine,aRuote,Sorte)
Case 2
Call AnalisiLunghetteFromNumeriCasuali(Inizio,Fine,aRuote,Sorte)
End Select
End If
End Sub
Function ScegliTipoSviluppo
ReDim aVoci(2)
aVoci(1) = "Da file txt con lunghette"
aVoci(2) = "Da sviluppo casuale"
ScegliTipoSviluppo = ScegliOpzioneMenu(aVoci,1)
End Function
Function GetChrSepFromRiga(sRiga)
Dim k,schr
schr = ""
For k = 1 To Len(sRiga)
schr = Mid(sRiga,k,1)
If IsNumeric(schr) = False Then
Exit For
End If
Next
GetChrSepFromRiga = schr
End Function
Sub AnalisiLunghetteFromFileTxt(Inizio,Fine,aRuote,Sorte)
Dim sFile,aLunghette,nTotLunghette
Dim k,sChrSep
Dim clsL,collLunghette
Set collLunghette = GetNewCollection
sFile = ScegliFile(GetDirectoryAppData,".txt")
If FileEsistente(sFile) Then
Call LeggiRigheFileDiTesto(sFile,aLunghette)
nTotLunghette = UBound(aLunghette)
If nTotLunghette > 0 Then
sChrSep = GetChrSepFromRiga(aLunghette(1))
For k = 1 To nTotLunghette
Set clsL = New clsLunghetta
Call clsL.Init(aLunghette(k),sChrSep,Inizio,Fine,aRuote,Sorte)
If clsL.IsCondizioneRispettata Then
Call clsL.EseguiStatistica
collLunghette.Add clsL
End If
If k Mod 50 = 0 Then
Call Messaggio("Righe esaminate " & k)
Call AvanzamentoElab(1,nTotLunghette,k)
If ScriptInterrotto Then Exit For
End If
Next
Scrivi "Range analisi : " & GetInfoEstrazione(Inizio) & " - " & GetInfoEstrazione(Fine)
Scrivi "Lunghette esaminate : " & nTotLunghette & " Valide : " & collLunghette.count
Scrivi "Sorte : " & NomeSorte(Sorte)
Scrivi "Ruote : " & StringaRuote(aRuote)
Scrivi
Scrivi "Lunghette ordinate per incremento ritardo max",True,,vbYellow
Call Scrivi
If collLunghette.count > 0 Then
Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
For Each clsL In collLunghette
Call Scrivi("Lunghetta : " & clsL.LunghettaString )
Call Scrivi("Ritardo : " & clsL.Ritardo)
Call Scrivi("RitMax : " & clsL.RitardoMax)
Call Scrivi("Freq : " & clsL.Frequenza)
Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)
Call clsL.DisegnaGraficoIncrRitMax
Next
Else
Scrivi "Nessuna lunghetta rispetta le condizioni"
Scrivi "Lunghette esaminate " & nTotLunghette
End If
End If
End If
End Sub
Sub AnalisiLunghetteFromNumeriCasuali(Inizio,Fine,aRuote,Sorte)
Dim sFile,aLunghette,nTotLunghette,nClasse
Dim nTrov,nProdotte
Dim clsL,collLunghette
Set collLunghette = GetNewCollection
nTotLunghette = Int(InputBox("Quante lunghette devono essere trovate ?",,10))
nClasse = Int(InputBox("Quanti numeri nella lunghetta",,Sorte))
If nTotLunghette > 0 And nClasse >= Sorte And nClasse <= 10 Then
nTrov = 0
nProdotte = 0
Do While nTrov < nTotLunghette
Set clsL = New clsLunghetta
ReDim aNum(nClasse)
Call GetColonnaCasuale(nClasse,aNum)
nProdotte = nProdotte + 1
Call clsL.Init(aNum,"",Inizio,Fine,aRuote,Sorte)
If clsL.IsCondizioneRispettata Then
Call clsL.EseguiStatistica
collLunghette.Add clsL
nTrov = nTrov + 1
End If
If nProdotte Mod 50 = 0 Then
Call Messaggio("combinazioni esaminate " & nProdotte & " valide " & nTrov)
Call DoEventsEx
If ScriptInterrotto Then Exit Do
End If
Loop
Scrivi "Range analisi : " & GetInfoEstrazione(Inizio) & " - " & GetInfoEstrazione(Fine)
Scrivi "Lunghette esaminate : " & nTotLunghette & " Valide : " & collLunghette.count
Scrivi "Sorte : " & NomeSorte(Sorte)
Scrivi "Ruote : " & StringaRuote(aRuote)
Scrivi
Scrivi "Lunghette ordinate per incremento ritardo max",True,,vbYellow
Call Scrivi
If collLunghette.count > 0 Then
Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
For Each clsL In collLunghette
Call Scrivi("Lunghetta : " & clsL.LunghettaString )
Call Scrivi("Ritardo : " & clsL.Ritardo)
Call Scrivi("RitMax : " & clsL.RitardoMax)
Call Scrivi("Freq : " & clsL.Frequenza)
Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)
Call clsL.DisegnaGraficoIncrRitMax
Next
Else
Scrivi "Nessuna lunghetta rispetta le condizioni"
Scrivi "Lunghette esaminate " & nTotLunghette
End If
End If
End Sub


:eek: Quando il Maestro supera se stesso! Scopadelico Luigi! :D Ciao a tutti ragazzi! Buona domenica Buon Tutto!!!
Dunque vincenzo, come ha giustamente scritto anche i legend questo script è un script "mietitore" o meglio "filtro" e la sua principale funzione è quella di automatizzare, il più possibile e nella maniera più veloce, estenuanti ricerche che prima si facevano a mano... di cosa? Delle condizioni teoricamente ottimali (perchè di certo si sa non c'è assolutamente nulla tranne che siamo nati e che n'andremo... :p) aventi incmax passato maggiore uguale a incmax attuale raggiunto... In effetti facendo girare il magnifico script mi sono accorto che le condizioni da esso estrapolate sono "eccedenti" quelle strettamente necessarie. Ovvero lo script rileva e visualizza magistralmente con dei grafici a dir poco stupefacenti tutte e dico tutte le condizioni impostate ad una velocità impressionante (e i complimenti x LuigiB e i legend sono ad libitum :) ) ma rileva sia condizioni con IncmaxMassimo Ultimo uguale all'ultimo valore di IncMassimo Passato (è questo è ultra scopadelico! :p :D ) sia condizioni con IncMassimo Ultimo maggiore anche di gran lunga di quello IncMassimo Passato (e questo appunto rappresenta un dato della ricerca che se si potesse non visualizzare con un if appropriato che non sono riuscito a mettere :( :) sarebbe meglio...)

Ad ogni modo grazie agli stupendissimi grafici è possibile individuare tra i risultati quelli doc con una velocità impressionante... e quindi anche se non fosse possible l'ottimizzazione sopra auspicata va straordinariamente bene anche così! Ribadisco Siete stati e sempre sarete ai miei occhi... e non solo... ULTRA MITICI RAGAZZI... (luigib e i legend) !

Per quanto riguarda la richiesta di vincenzo di avere degli esempi.. oltre che a seguire quanto ti ha consigliato di fare i legend puoi provare con qualsiasi file txt contenente lunghette tutte della solita lunghezza con i valori intervallati da qualsiasi carattere separatore (altra chicca dei nostri programmatori!) meglio se il file txt in questione ne contiene più di 100 ;)Intanto ti posto alcuni risultati... comunque prova anche l'ultima chicca soprastante del gran Maestro Luigi che dovrebbe proprio fare al caso tuo! ;)


Ecco uno dei fantastici grafici sviluppati quasi alla velocità della luce.. ;) :p

00006.jpg





Siccome con i miei due neuroni spesso a fare la siesta... non sono riuscito ad identificare i parametri IncMaxMassimo Passato e IncMax Ultimo Attuale relativo all'RA=RS ultimo... raggiunto mi potete indicare quali sono così da poter provare anche io stesso ad implementare magari con un gran colpo di C... fortuna la if di cui sopra e sopratutto per avere dal punto di vista numerico e non solo disegnato il valore dei rispettivi apici?

Mi sembra di aver capito.. che il parametro relativo all'ultimo incmax massimo rilevato relativo all'ultimo RA=RS sia identificato da questa riga:

Codice:
  [/COLOR][/SIZE][/FONT]clsL.IncrRitMax  [FONT=Courier New][SIZE=2][COLOR=#000000]
A questo punto mi mancherebbe di sapere solo... la riga di codice relativa al IncMax Massimo del Passato... che non riesco a trovare... e che necessiterei di mettere sopra la riga di output:
Codice:
  Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)

In modo da avere appunto evidenziati anche sotto forma di numeri e non solo di puntini nel grafico... i due valori massimi
IncMax Passato e IncMax Attuale per cercare di realizzare il futuro eventuale IF scrematore.. ulteriore ;) :cool:





Per LuigiB e i legend riferito al fatto che non giocate mai... (un eurino ogni tanto buttatelo dai ;) braccine corte!!! ) :D :D :D

Ancora GRAZIE LuigiB e i legend "programmatori magici" e stupenda domenica ;) :D
 

Allegati

  • 00006.jpg
    00006.jpg
    49,4 KB · Visite: 2
  • 00006.jpg
    00006.jpg
    49,4 KB · Visite: 1
  • 00006.jpg
    00006.jpg
    49,4 KB · Visite: 2
Ultima modifica:
[TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 832"]
[TR]
[TD]
LOGOSILOP.gif
[/TD]
[/TR]
[TR]
[TD] [/TD]
[/TR]
[TR]
[TD]Ciao LuigiB o I Legend o LottoTom,[/TD]
[/TR]
[TR]
[TD]ho provato il vostro bellissimo script sugli IncrMax[/TD]
[/TR]
[TR]
[TD]con un mio file txt di 138 lunghette di ottine[/TD]
[/TR]
[TR]
[TD]ed ho notato che non le legge tutte [/TD]
[/TR]
[TR]
[TD]ne manca sempre UNA ( ho provato anche con altri file.txt)[/TD]
[/TR]
[TR]
[TD]le valide sono 137 invece di 138 :[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]Range analisi : [03950] [ 37] 14.09.1946 - [09085] [140] 21.11.2015[/TD]
[/TR]
[TR]
[TD]Lunghette esaminate : 137 Valide : 16[/TD]
[/TR]
[TR]
[TD]Sorte : Quaterna[/TD]
[/TR]
[TR]
[TD]Ruote : TT[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]Forse sbaglio qualcosa ?[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]
stickman.gif
[/TD]
[/TR]
[TR]
[TD]Buona domenica a tutti.[/TD]
[/TR]
[TR]
[TD]A presto [/TD]
[/TR]
[TR]
[TD]Silop ;) ;) ;)[/TD]
[/TR]
[/TABLE]
 
ciao Silop

va corretta questa riga

For k = 1 To nTotLunghette

con

For k = 0 To nTotLunghette
 
silop2005;n1937308 ha scritto:
[TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 832"]
[TR]
[TD]
LOGOSILOP.gif
[/TD]
[/TR]
[TR]
[TD] [/TD]
[/TR]
[TR]
[TD]Ciao LuigiB o I Legend o LottoTom,[/TD]
[/TR]
[TR]
[TD]ho provato il vostro bellissimo script sugli IncrMax[/TD]
[/TR]
[TR]
[TD]con un mio file txt di 138 lunghette di ottine[/TD]
[/TR]
[TR]
[TD]ed ho notato che non le legge tutte[/TD]
[/TR]
[TR]
[TD]ne manca sempre UNA ( ho provato anche con altri file.txt)[/TD]
[/TR]
[TR]
[TD]le valide sono 137 invece di 138 :[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]Range analisi : [03950] [ 37] 14.09.1946 - [09085] [140] 21.11.2015[/TD]
[/TR]
[TR]
[TD]Lunghette esaminate : 137 Valide : 16[/TD]
[/TR]
[TR]
[TD]Sorte : Quaterna[/TD]
[/TR]
[TR]
[TD]Ruote : TT[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]Forse sbaglio qualcosa ?[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]
stickman.gif
[/TD]
[/TR]
[TR]
[TD]Buona domenica a tutti.[/TD]
[/TR]
[TR]
[TD]A presto[/TD]
[/TR]
[TR]
[TD]Silop ;) ;) ;)[/TD]
[/TR]
[/TABLE]


Ciao Silop e ciao Luigi, si in effetti sembra saltare... una delle righe esaminate... presenti nel file txt. Anche dopo la modifica della riga suggerita da Luigi il problema sembra persistere mostrando a video "righe esaminate 114 anzichè 115 ad esempio"

Ps: Se all'ultima ultra scopadelica versione... si potesse aggiungere la tabella "colorata" per l'immissione dei numeri voluti come è presente quasi in ogni script e nelle sezioni di spaziometria credo che questa rappresenterebbe la ciliegina dorata sulla mega torta finora realizzata! :p :D

Della serie.. quest anno... Babbo Natale... sotto forma di due angeli con miliardi di neuroni è arrivato qualche giorno prima... :o :cool:

Ciao! :)
 
Ultima modifica:
HO notato , qualcosa che non mi quadra , durante l'esecuzione dello script per esito di estratto su 1 ruota con lunghette di 2 soli numeri(coppie) , da sviluppo casuale , il numero delle combinazioni esaminate dovrebbe fermarsi a 4005? mentre lo script continua ad analizzare oltre le 300.000 combinazioni che non esistono se non ripetute , o no?

Per SILOP , sembra che hai tutto o quasi , posso chiederti un file .txt con lo sviluppo in coppie integrali (4005) e magari in terzine (117mila....) x la sorte di estratto e ambo.
 
Ultima modifica:
vincenzo4221;n1937329 ha scritto:
HO notato , qualcosa che non mi quadra , durante l'esecuzione dello script per esito di estratto su 1 ruota con lunghette di 2 soli numeri(coppie) , da sviluppo casuale , il numero delle combinazioni esaminate dovrebbe fermarsi a 4005? mentre lo script continua ad analizzare oltre le 300.000 combinazioni che non esistono se non ripetute , o no?

Per SILOP , sembra che hai tutto o quasi , posso chiederti un file .txt con lo sviluppo in coppie integrali (4005) e magari in terzine (117mila....) x la sorte di estratto e ambo.


Ciao vincenzo per avere quello che chiedi 4005 ambi integrali e 117480 terni integrali ti basta andare in statistica formazioni registrate ed estrapolarle da li con il pulsante "excel" che trovi in alto ;)

Guarda l'immagine che ti allego... Ciao!

image_11955.jpg
 

Allegati

  • x-vincenzo.jpg
    x-vincenzo.jpg
    27,7 KB · Visite: 2
Ultima modifica:
le colonne sono casuali . non sono ripetuti i numeri all'interno ma in un campo ritretto di 4005 combianzioni se ne sviluppa 300000 è ovvio che ce ne siano di ripetute.
per il resto è solo un fattore di visualizzazione gardate la prima e l'ultima riga del file txt e se si trattava di due lunghette valide ci sono tutte e due . sarebeb da fare un a modifichetta per aggiungere un + 1 per sistemare tutto ma so bene che parlerei arabo . ahime ...
 
Ciao:)

Ntotlunghette=ubound ( aLunghette)+1

Sto provando a fare la modifica chiesta da tom con Sceglinumeri.
Provo anche su colonne
.col



Tom cosa ti serve vedere?
Se mi spieghi ci provo senza compromettere l originale.
Premesso che riesco a farlo funzionare.
Il tethering funziona ma non voglio fare copia incolla:)
Ciao:)
 
Ultima modifica:
Ciao grandissimo,
Per cercare di risolvere la mancata verifica di una lunghetta su quelle totali... evidenziata da vincenzo ho provato a fare quanto da te postato sopra...

Sostituendo come hai suggerito la riga...

Codice:
nTotLunghette = UBound(aLunghette)

con
Codice:
nTotLunghette = UBound(aLunghette) + 1

Mi da sempre errore relativo al fattore k... :eek: :( :)




i legend;n1937342 ha scritto:
Ciao:)

......

Tom cosa ti serve vedere?
Se mi spieghi ci provo senza compromettere l originale.
Premesso che riesco a farlo funzionare.
Il tethering funziona ma non voglio fare copia incolla:)
Ciao:)


Ho cercato di spiegarti il tutto con un'immagine comprensiva di qualche riga di testo ;)

Se comunque ancora non mi sono spiegato bene chiedi pure 24h su 24 ;) G R A Z I E ! :)



Clicca sul nome del file allegato perchè l'immagine anche se la metto a dimensione massima nel post si vede sempre troppo piccola :( :)

Immagine: image_11956.jpg
 

Allegati

  • x-i-legend-incmax-passato-e-attuale.jpg
    x-i-legend-incmax-passato-e-attuale.jpg
    76 KB · Visite: 3
Ultima modifica:
Ciao
Provo a controllare con i file txt
Per vedere il discorso della riga mancanteQuesta è la sub per scegli numeri controllate se funxiona:)
Tom le immagini che hai inserite non le vedo non si aprono non so se dipende da me.
Ciao:)
Codice:
Sub AnalisiLunghetteFromSceglinumeri (Inizio,Fine,aRuote,Sorte)
    Dim nTotLunghette
    Dim k,sChrSep,nClasse 
Redim aLunghette  (0)
    Dim clsL,collLunghette
    Set collLunghette  = GetNewCollection
    SChrSep =" "
    Sceglinumeri ( aLunghette ) 
    nClasse =cint (InputBox ( " classe sviluppo ",,2)
        nTotLunghette = initsviluppointegrale ( aLunghette, nClasse )
        K=0
            Do while getcombsviluppo ( aLunghette ) 
K=k+1
                Set clsL = New clsLunghetta
                Call clsL.Init(aLunghette,sChrSep,Inizio,Fine,aRuote,Sorte)
                If clsL.IsCondizioneRispettata Then
                    Call clsL.EseguiStatistica
                    collLunghette.Add clsL
                End If
                If k Mod 50 = 0 Then
                    Call Messaggio("Righe esaminate "& k&"  valide "&collLunghette. count )
Doeventsex
                    Call AvanzamentoElab(1,nTotLunghette,k)
                    If ScriptInterrotto Then Exit do
                End If
            Loop
            
            Scrivi "Range analisi       : " & GetInfoEstrazione(Inizio) & " - " & GetInfoEstrazione(Fine)
            Scrivi "Lunghette esaminate : " & nTotLunghette & " Valide : " & collLunghette.count
            Scrivi "Sorte               : " & NomeSorte(Sorte)
            Scrivi "Ruote               : " & StringaRuote(aRuote)
            Scrivi
            Scrivi "Lunghette ordinate per incremento ritardo max",True,,vbYellow
            Call Scrivi
            
            If collLunghette.count > 0 Then
                    
                Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
                For Each clsL In collLunghette
                    Call Scrivi("Ritardo   : " & clsL.Ritardo)
                    Call Scrivi("RitMax    : " & clsL.RitardoMax)
                    Call Scrivi("Freq      : " & clsL.Frequenza)
                    Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)
                    Call clsL.DisegnaGraficoIncrRitMax
                Next
            Else
                Scrivi "Nessuna lunghetta rispetta le condizioni"
                Scrivi "Lunghette esaminate " & nTotLunghette
            End If
        End If
    End If
End Sub
 
LuigiB;n1937311 ha scritto:
ciao Silop

va corretta questa riga

For k = 1 To nTotLunghette

con

For k = 0 To nTotLunghette
================================ [TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 832"]
[TR]
[TD]
LOGOSILOP.gif
[/TD]
[/TR]
[TR]
[TD] [/TD]
[/TR]
[TR]
[TD]Ciao LuigiB ,[/TD]
[/TR]
[TR]
[TD]…. Il verificatore al lavoro…. Eheheheh[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]ho fatto la modifica nel for che mi hai consigliato….[/TD]
[/TR]
[TR]
[TD]a video risulta sempre la quantità di 137 invece di 138 lunghette[/TD]
[/TR]
[TR]
[TD]Ho fatto stampare a video tutte le 138 lunghette e ci sono TUTTE[/TD]
[/TR]
[TR]
[TD]dalla prima all'ultima lunghetta, quindi le elabora TUTTE.[/TD]
[/TR]
[TR]
[TD]L'unica anomalia (?) è che vi sono tre righe VUOTE[/TD]
[/TR]
[TR]
[TD]dopo la 1^ lunghetta scritta[/TD]
[/TR]
[TR]
[TD]vi è una riga vuota (2^)[/TD]
[/TR]
[TR]
[TD]continuando la conta delle lunghette[/TD]
[/TR]
[TR]
[TD]dopo la 52^ lunghetta scritta[/TD]
[/TR]
[TR]
[TD]vi è una riga vuota (53^)[/TD]
[/TR]
[TR]
[TD]poi[/TD]
[/TR]
[TR]
[TD]dopo la 103^ lunghetta scritta[/TD]
[/TR]
[TR]
[TD]vi è una riga vuota (104^)[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]per un totale di 141 righe (138+3)[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]Forse bisogna fare qualche altra modifica allo script….[/TD]
[/TR]
[TR]
[TD]per eliminare l'anomalia.[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]
stickman.gif
[/TD]
[/TR]
[TR]
[TD]Buona domenica a tutti.[/TD]
[/TR]
[TR]
[TD]A presto [/TD]
[/TR]
[TR]
[TD]Silop ;) ;) ;)[/TD]
[/TR]
[TR]
[TD]PS[/TD]
[/TR]
[TR]
[TD]per vincenzo[/TD]
[/TR]
[TR]
[TD]segui le indicazioni dell'immagine di lotto_tom[/TD]
[/TR]
[TR]
[TD]…se non ci riesci mi contatti tramite mail[/TD]
[/TR]
[TR]
[TD]che ti invio i files direttamente.[/TD]
[/TR]
[/TABLE]
 
Ho visto il problema
La mia domanda è un problema di lettura o di scrittura ?
Mi spiego non fa la verifica su una formazione o non la conta in maniera corretta?
Quello che ho scritto prima Erroraccio!
Io ho risolto così
Id=0
For k= 0 To nTotLunghette
Id=id+1
E si sostituisce nTotLunghette
Con id
Cmq la verifica lo fa su tutto.
Oppure
Lunghette esaminate = nTotLunghette +1
L array parte da zero
Quindi sè ubound (array )= 25
Dentro ci sono 26 elementi
 
allora il problema come Silop ha anche riscontrato è solo di visualizzazione del contatore ,
andava fatta la modifica che avevo detto per far leggere tutte le righe , ed in piu andava inserito un +1 quando scrive a video il numero delle lunghette.

spiegazione tecnica :

quando lanciamo la funzione che legge le righe dal file di testo questa torna un array con le righe

l'array inizia da 0 quindi se le righe nel file txt fossero 10 l'array tornerebbe con l'indice piu alto 9.

quando facciamo nTotLunghette = ubound (aLineeTxt) in realta ntotlunghette è inesatto ...
solo che non possiamo aggiungerci un + 1 qui perche dopo facciamo un ciclo per
leggere l'array delle righe che deve andare da 0 (come ho detto di fare ) fino a nTotLunghette
che conteneva ubound(aLineeTxt) aommando il +1 li capita l'errore riferito dal povero lottotom.
quindi se i somma il +1 a nTotLunghette si deve cambiare il ciclo for che legge il vettore mettendo li un -1 ..oppure si va a mettere il + 1 solo quando scrive il numero a video ..
 
legend per risolverei la richiesta di lottotom quella di sapere i lvalore del massimo incremento del passato devi aggiungere uan proprieta alla classe e dentro al codice della proprieta ricalcoli il valore max del vettore meno l'ultimo elemento.. invece il valor incrRitMAx già ha la sua proprietà.

poi nel codice dello script richiamando queste due proprietà potrai scrivere questi valori a video.
 
Ciao tom visto il grafico.
Che ne pensi della sub scegli numeri?

Grazie luigi seguirò la tua guida.
Domani lavoro tutto il giorno cerco di postare il tutto domani sera:)
Buon inizio settimana a tutti :)
 
i legend;n1937431 ha scritto:
Ciao tom visto il grafico.
Che ne pensi della sub scegli numeri?

Grazie luigi seguirò la tua guida.
Domani lavoro tutto il giorno cerco di postare il tutto domani sera:)
Buon inizio settimana a tutti :)


Ciao legend :) dove e come trovo e inserisco la sub sceglinumeri? (ti riferisci alla tabella colorata per l'immissione dei numeri voluti vero?)


Nel frattempo ho fatto qualche altra prova... e cercando 4ine teoricamente ottimali (assolutamente non certe) per A su TUTTE a colpo su un gruppo integrale doc abbastanza corposo... il vostro fantastico script mi ha aiutato a rilevare "visivamente" molto velocemente queste condizioni teoricamente interessanti...


Lunghetta : .8.44.54.55
Ritardo : 64
RitMax : 64
Freq : 823
IncrRitMx : 16

teoricamente ottimale

Sulla ruota di : BA CA FI GE MI NA PA RO TO VE
Formazione analizzata : 08.44.54.55
Da Estrazione : [03575] [ 27] 08.07.1939
A Estrazione : [09085] [140] 21.11.2015

Ritardo : 64
RitardoMax : 64
Frequenza : 716

Dettaglio evoluzione RitMax
Estrazione : 3579 RitMax : 5 InccrRitMax : 5
Estrazione : 3597 RitMax : 9 InccrRitMax : 4
Estrazione : 3623 RitMax : 17 InccrRitMax : 8
Estrazione : 3765 RitMax : 33 InccrRitMax : 16
Estrazione : 4209 RitMax : 42 InccrRitMax : 9
Estrazione : 6804 RitMax : 48 InccrRitMax : 6
Estrazione : 9085 RitMax : 64 InccrRitMax : 16




Lunghetta : .17.46.55.74
Ritardo : 51
RitMax : 51
Freq : 862
IncrRitMx : 10


teoricamente ottimale anche se nn per il valore iniziale..

Sulla ruota di : BA CA FI GE MI NA PA RO TO VE
Formazione analizzata : 17.46.55.74
Da Estrazione : [03575] [ 27] 08.07.1939
A Estrazione : [09085] [140] 21.11.2015

Ritardo : 51
RitardoMax : 51
Frequenza : 780

Dettaglio evoluzione RitMax
Estrazione : 3587 RitMax : 13 InccrRitMax : 13 <- come primo valore incmax non viene considerato...
Estrazione : 3611 RitMax : 16 InccrRitMax : 3
Estrazione : 3643 RitMax : 20 InccrRitMax : 4
Estrazione : 3706 RitMax : 23 InccrRitMax : 3
Estrazione : 3770 RitMax : 33 InccrRitMax : 10
Estrazione : 4102 RitMax : 41 InccrRitMax : 8
Estrazione : 9085 RitMax : 51 InccrRitMax : 10



Lunghetta : .2.21.45.64
Ritardo : 50
RitMax : 50
Freq : 807
IncrRitMx : 8


teoricamente ottimale

Sulla ruota di : BA CA FI GE MI NA PA RO TO VE
Formazione analizzata : 02.21.45.64
Da Estrazione : [03575] [ 27] 08.07.1939
A Estrazione : [09085] [140] 21.11.2015

Ritardo : 50
RitardoMax : 50
Frequenza : 725

Dettaglio evoluzione RitMax
Estrazione : 3576 RitMax : 2 InccrRitMax : 2
Estrazione : 3590 RitMax : 7 InccrRitMax : 5
Estrazione : 3616 RitMax : 9 InccrRitMax : 2
Estrazione : 3656 RitMax : 16 InccrRitMax : 7
Estrazione : 3760 RitMax : 20 InccrRitMax : 4
Estrazione : 3800 RitMax : 28 InccrRitMax : 8
Estrazione : 5854 RitMax : 36 InccrRitMax : 8
Estrazione : 6386 RitMax : 42 InccrRitMax : 6
Estrazione : 9085 RitMax : 50 InccrRitMax : 8




Lunghetta : .8.22.44.88
Ritardo : 38
RitMax : 38
Freq : 852
IncrRitMx : 2


teoricamente ottimale anche se non per il valore iniziale

Sulla ruota di : BA CA FI GE MI NA PA RO TO VE
Formazione analizzata : 08.22.44.88
Da Estrazione : [03575] [ 27] 08.07.1939
A Estrazione : [09085] [140] 21.11.2015

Ritardo : 38
RitardoMax : 38
Frequenza : 760

Dettaglio evoluzione RitMax
Estrazione : 3608 RitMax : 33 InccrRitMax : 33 <- come primo valore incmax non viene considerato...
Estrazione : 5415 RitMax : 35 InccrRitMax : 2
Estrazione : 8398 RitMax : 36 InccrRitMax : 1
Estrazione : 9085 RitMax : 38 InccrRitMax : 2



Lunghetta : .8.27.55.64
Ritardo : 0
RitMax : 59
Freq : 905
IncrRitMx : 0

???


Sulla ruota di : BA CA FI GE MI NA PA RO TO VE
Formazione analizzata : 08.27.55.64
Da Estrazione : [03575] [ 27] 08.07.1939
A Estrazione : [09085] [140] 21.11.2015

Ritardo : 0 <- la lunghetta con RA=0 non dovrebbe venire considerata come lunghetta rispettante le condizioni di estrapolazione...

RitardoMax : 59
Frequenza : 808

Dettaglio evoluzione RitMax
Estrazione : 3578 RitMax : 4 InccrRitMax : 4
Estrazione : 3585 RitMax : 5 InccrRitMax : 1
Estrazione : 3598 RitMax : 10 InccrRitMax : 5
Estrazione : 3627 RitMax : 28 InccrRitMax : 18
Estrazione : 4151 RitMax : 30 InccrRitMax : 2
Estrazione : 4360 RitMax : 33 InccrRitMax : 3
Estrazione : 6571 RitMax : 41 InccrRitMax : 8
Estrazione : 9084 RitMax : 59 InccrRitMax : 18 <- questa riga dovrebbe riportare Estrazione 9085 ovvero l'ultima dell'archivio considerata per l'estrapolazione e non la penultima anche se questa penultima ha l'incmax massimo uguale al massimo passato...

LO SCRIPT HA RILEVATO ANCHE QUESTA CONDIZIONE che nonostante abbia i valori incmax teoricamente ottimali... ha anche erroneamente RA = 0 (le condizioni valide dovrebbero essere solo quelle con RA ultimo > 0 e = all'RS storico.. con incmax > 0


Le uniche due cosine che stonano... un po' in questi risultati estrapolati molto velocemente rispetto a prima :) sono le seguenti:

1) il valore incmax massimo passato se riferito alla prima estrazione (prima riga del dettaglio evoluzione RitMax non viene considerato...)

2) nell'ultimo caso dato estrapolato dallo script com "caso con condizioni rispettate" abbiamo un RA = 0 rispetto all'RS 59 anche se i due incmax passati.. sono teoricamente ottimali in realtà si tratta di due incmax passati e non di uno passato e di uno attuale.. in quanto l'ultimo incmax per essere attuale dovrebbe essere accompagnato necessariamente da un RA > 0 e = all'RS di turno...

3) ultimissima cosa: come anticipato qualche post fa vi ridomando se sia possibile scegliere l'estrapolazione o meno di determinate lunghette... anche in base al numero di incmax avuti... esempio evitare tutte le risultanze con meno di 6 incmax avuti nel tempo... ecc...

Per il resto ribadisco eccezziunale veramente come direbbe il grande Abatantuono! :D

Buona serata e buona notte friends! :)
 
Ultima modifica:
Ciao Ciao
tom lo script scegli numeri l ho postato nella pagina precedente. Va formattato copiato e poi aggiungere l opzione nella funzione di scelta tipo
Invece non ho capito gli altri 2 punti.
Tu vuoi che venga considerato il primo incremento?

Per quanto riguarda il filtro noi abbiamo messo > = MaxIncSto tu vorresti solo maggiore?
Per il resto provo domani sera a fare tutto al massimo per martedì posto con le ultime richieste
Se ho capito bene:)
Ciao:)
 
Ciao Ciao tom
Questo lo fai te così cominci a far pratica :)
Nella class
Codice:
Private  mIncrRitMaxSto 
Public property  get IncrRitMaxSto 
IncrRitMaxSto =mIncrRitMaxSto 
End property 

Function IsCondizioneRispettata 
Dim  nUpper 
NUpper =ubound ( aElencoIncrRitMax )
mIncrRitMaxSto  =massimov ( aElencoIncrRitMax, 1, nUpper -1)
If  aElencoRit ( ubound ( aElencoRit ) )  > 0 and  aidestrIncrRitMax ( nUpper ) = mFine then 
' 
IsCondizioneRispettata =  (aElencoIncrRitMax ( nUpper )  >  mIncrRitMaxSto )
Else 
IsCondizioneRispettata = False 
End If 
End function
Codice:
' 
For Each clsL In collLunghette 
' m nel For Each aggiungi questa linea
Call Scrivi ( " IncrRitMaxSto : "& clsL.IncrRitMaxSto )
Next
Prova a fare questi inserimenti
A me funzionano
Incr att> dello storico
Visualizzazione incmax storico
Ciao:)
Se non ce la fai vedo di scrivere tutto io
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 23 novembre 2024
    Bari
    33
    80
    86
    52
    25
    Cagliari
    67
    57
    59
    05
    80
    Firenze
    31
    32
    58
    88
    77
    Genova
    40
    39
    23
    36
    81
    Milano
    28
    58
    45
    25
    38
    Napoli
    20
    82
    23
    44
    57
    Palermo
    76
    56
    88
    62
    31
    Roma
    12
    81
    59
    74
    72
    Torino
    46
    53
    72
    45
    23
    Venezia
    04
    12
    42
    64
    20
    Nazionale
    63
    44
    78
    10
    55
    Estrazione Simbolotto
    Torino
    43
    42
    12
    39
    22
Indietro
Alto