Novità

Si potrebbe realizzare uno script Tabbellare come di seguito ? atto terzo

Grazie Luigi ,l'idea era quella ma non avevo proprio pensato al redim Preserve anzi in verità per la scelta dalla lista dei capogiochi stavo per partire per tutt'altri lidi:
Codice:
option explicit
Sub Main

    ReDim aVoci(0)
    ReDim aVociSel(0)
    Dim nNum
    
    nNum=ScegliNumeri(aVoci)
    For nNum = 1 To UBound(aVoci)
        aVoci(nNum) =  nNum
    Next
    
    If ScegliDaLista(aVoci,aVociSel) > 0 Then
    
        For nNum = 1 To UBound(aVociSel)
            If aVociSel(nNum) Then
                Call Scrivi(aVoci(nNum))
            End If
        Next
    End If
    
    
End Sub
cosi avoci(nNum) = 1 o 2 o 3 elementi li utilizzavo per la (combinazione - (i fissi selezionati))..
Stavo imboccando la strada sbagliata, grazie
Devo studiare il redim preserve mai utilizzato, se non sbaglio solo l'ultimo elemnto della matrice si puo ridimensionare,
ScegliDaLista l'ho studiato dai Test:)
Buona Notte.)
 
Ciao Mike, ciao Luigi,grazie troppo buono...........Seguirò il tuo consiglio :)Appena la connessione me lo consente scarico la versione nuova..Purtroppo non ho vb6, avevo scaricato vb2010 express* ma non funziona sul mio pc, non ho i requisiti di sistema sufficenti ...Vb6 non è free vero? forse se ha qualcuno fa piacere e non è difficile può fare un plug.in .........Grazie ancora mille Luigi se alle superiori avessi avuto un prof come te forse ................................Sai quando si doveva fare l'ora d'informatica mi veniva male. Ti posso dire che solo l'idea mi terrorizzava,All'epoca c'era il dos ..c: e non so......Una volta chiesi cosa significava quello che aveva scritto ,(perchè se non capisco non c'è verso che impari a fare niente)la* risposta fu molto esaustiva, non dovevo sapere che significava ma che si faceva così.....dovevo imparare a memoria .................Peccato .Spero che le cose Vadano Meglio oggigiorno....Grazie ancora mille :)Buona serata a tutti :)

Ciao i legend lo script e unico e molto utile per molte ricerche grazie e grazie anche a mike , joe , luigi , o cercato di creare un exe di questo ottimo script come da te richiesto e il primo che creo e quindi spero di non aver fatto errori , per il discorso del vb6 , se mi contatti via email posso aiutarti....

Vedi l'allegato i legend.zip
 
Ciao Rabberto grazie mille, non preoccuparti per il vb6 non è fondamentale,appena mi èpossibile compro un pc meno obsoleto e posso caricare vb2010 expres che è in vb.net .Lo script è un semplice script con ritardo e frequenza , di particolare c'è la presenza della disuguaglianza di cebjec utile per le formazioni ritardatarie, spero davvero di aver fatto una cosa utile :)

Riguardo allo script ho solo il dubbio sul calcolo della frequenza teorica ,ma credo che sia corretto EstrazioniUtili/CicloTeorico.
Buona Domenica anche a te.. :)
 
Ciao joè è bello leggerti,e vedere che concordi con mike,mi potresti dare qualche input per ordinare le colonne della tabella?
grazie alle tue spiegazioni ed esempi sto capendo la logica del linguaggio.(come ragionare in pratica:o)
Vedi l'allegato 14035
ciao a tutti ho appena verificato la tabella che avevo postato l'altro giorno....
questa è l'idea di base e utilità pensata per los cript.
Con l'aggiunta del capogioco, possiamo studiare una massa numerica maggiore con minore svliluppo, Pensate anziche studiare 117480 terzine
avremmo con 1 capogioco poco meno di 4000 terzine non ricordo il numero esatto...
Buona notte:)
 
legend va benissimo il vb net per imparare a programmare e fare i tuoi programmi , ma per trasformare uno script in exe ci vuole per forza vb6
che sul tuo pc dovrebbe girare benissimo , quindi senti Rabberto . per fare una prova della velocita dello script trasformato in exe usa quello fornito da Raberto stesso cosi ti regoli
riguardo Redim preserve ti stai confondendo , quello che dici tu si applica lla matrici , i vettori una olta che li ridimensioni puoi aggiungere quanti elementi vuoi , quindi se tu hai un vetore aColonna(2) che contiene gi a due nuemeri , se fai redim preserve aColonna(10) di numeri ce ne puoi
aggiungere altri 8 senza perdere i primi due...
Chiaro che questo metodo va ben se i capogioco compaiono tutti insieme
Se invece i capigioco vanno a girare è piu complesso perche devi moltiplicare le colonne sviluppate dai capigioco con quelle sviluppate dal pronostico

.. ciao
 
Ultima modifica di un moderatore:
Buona domenica a tutti :)
Ciao Luigi ho provato lo script del gentilissimo rabberto, ma non funziona ,quando schiaccio il bottone lancia script mi viene fuori un messaggio di errore , manca autimation or non mi ricordo, a voi funziona bene?
Vado a studiare per la riduzione delle combinazioni :)
A dopo :)
P.S : Oggi il cielo è grigio,,,che tristezza :(
 
SI !!! I Legend a me funziona l'exe di rabberto che saluto e ringrazio.


WOH 1000esimo Messaggio
 
Ultima modifica:
Ciao mike,Complimenti :)
avevo scaricato la versione di prova di win Rar e sono scaduti i 40 giorni, forse non riesco ad aprire il file x questo?sono andato sulla pagina di win rar per capirne le limitazioni, ho visto che esiste UnRar e dice che è gratuito, ho capito bene? se no .....
qualcuno mi puo consigliare un buono zip free e dove scaricarlo? grazie...
Ciao a dopo..
 
Ultima modifica:
Funzione scelta riduzione
Codice:
Option Explicit
Sub Main
Dim a
Dim rid
a=ScegliCombinazione
If a>1 Then rid=SelRiduzione(a)

Scrivi rid    
End Sub

Function SelRiduzione(combinazione)
Dim ret
Dim rid
If ret>=0 Then
rid=ScegliOpzioneMenu(Array("","N-1","N-2"),1,"Seleziona Tipo di Riduzione") 
Else
rid =ret
 End If
SelRiduzione=rid



End Function

Function ScegliCombinazione
    Dim combinazione
    Dim ret
If ret>=0 Then
    combinazione = ScegliOpzioneMenu(Array("","Estratti","Ambi","Terzine","Quartine","Cinquine"),3," Combina i numeri In :")
Else 
ret=combinazione
End If
    ScegliCombinazione = CInt(combinazione)
End Function
credo che cosi gestisco il tasto annulla, e se scelgo combinazione estratto non serve far partire la scelta della riduzione.....
Ora devo studiare la sub quella difficile , vi aggiorno... :)
 
ciao Legend , winrar pure la versione non registrata va benissimo e il programma non scade , il tuo problema è che avrai qualche version e vecchia di spaziometria
 
Scusate l'invasione del post e accavallamento delle richieste, ma occorre da qui dare una mano anche a Silop con la sua richiesta in FT.

Io ho corretto in qualche modo lo script di I Legend e purtroppo non mi tornano le frequenze per Mesi.
I Legend prova a dargli una occhiata utilizzando questo file Vincicasa da mettere nella cartella di spaziometria semplicemente copiandolo e mettendolo con apri-directori di lavoro nella cartella aperta chiamandolo vinciCa.


invece questo lo script da correggere in alcune parti dei mesi.

Codice:
Option Explicit
Sub Main
Call ApriBaseDatiFT("C:\Documents and Settings\Mike58\Dati applicazioni\SpazioMetria\vinciCa.txt",5,",",40)
Dim Ini,Fin,nEstr,es,k,x,r,nValore,idOrd,TipOrd,Ctr,z
Dim DevStd,disCeb,ScaCeb
Dim nColTotSvil
Dim s,e,ritardo,ritardomax,IncrRitMax,RitMed,RitMese
Dim Frequenza,freqTeorica,FreqMese,freq,FreqTot,Scarto
Dim nNumeri,aColonne
ReDim aNumeri(0)
'Dim aRu(1)
Dim nCombinazione,nSorte,nCiclo
Dim aTitolo
ReDim aRetRitardi(0)
ReDim aRetIdEstr(0)
Fin = EstrazioniArchivioFT
If ImpostaParametri(nNumeri,nCombinazione,nSorte,Ctr,idOrd,TipOrd,Ini) = False Then
MsgBox "Parametri non corretti",vbCritical
Exit Sub
End If
'Imposto i titoli delle colonne della tabella statistica
aTitolo = Array("","ID","Comb","freq","Scarto","Rit","RitMed","RitSto","IncR.s","DevStd","disCeb","ScaCeb99%","GEN","FEB","MAR","APR","MAG","GIU","LUG","AGO","Set","OTT","NOV","DIC")
InitTabella aTitolo,RGB(108,194,243),,3,vbWhite', "Consolas"
'conto le estrazioni utili
nEstr = ContaEstrazioni(Ini,Fin,r)
nValore = Round(CicloTeorico(nCombinazione,nSorte,CInt(Ctr)),2)' ctr= 1 (=1R);=10(=TT)
freqTeorica = Round(Dividi(nEstr,nValore),2)
'aColonne = SviluppoIntegrale(nNumeri,nCombinazione) ' sviluppo i l'array dei numeri scelti ,nella combinazione scelta
ReDim aColSviluppo(0)
nColTotSvil = Combinazioni(UBound(nNumeri),nCombinazione)
ReDim nMese(nColTotSvil,12)
For z = 1 To 12
Call ImpostaEstrazioniAttivePerMese(z,Ini,Fin)
nColTotSvil = InitSviluppoIntegrale(nNumeri,nCombinazione)
k = 0
Do While GetCombSviluppo(aColSviluppo)
k = k + 1
nMese(k,z) = TrovaFrequenzaMese(aColSviluppo,nSorte,Ini,Fin,z)
Loop
Next
Call ResetEstrazioniAttive(z,Ini,Fin)
k = 0
nColTotSvil = InitSviluppoIntegrale(nNumeri,nCombinazione)
Do While GetCombSviluppo(aNumeri)
k = k + 1
'For k = 1 To UBound(aColonne) ' ciclo per leggere la colonna k della matrice aColonne
's = "" ' dichiaro la stringa combinazione vuota
Messaggio "Elaborazione in corso id sviluppo: " & k
AvanzamentoElab 1,nColTotSvil,k
If ScriptInterrotto Then Exit Do
s = StringaNumeri(aNumeri,,True)
Call StatisticaFormazioneFT(aNumeri,nSorte,ritardo,ritardomax,IncrRitMax,Frequenza,Ini,Fin)
FreqTot = Frequenza
' funzione per calcolare il ritardo globale della formazione
' questo è un espediente che ho dovuto analizzare visto la frequenza mese
RitMese = TrovaRitardoMese(aNumeri,nSorte,Ini,Fin,"TUTTI")
Scarto = Round(FreqTot - freqTeorica,2)
' richiamo la funzione elenca ritardi, per poter attingere alla marice che elenca i ritardi  voce:( aRetRitardi)
Call ElencoRitardiFT(aNumeri,nSorte,Ini,Fin,aRetRitardi,aRetIdEstr)
' scritta funzione per calcolare il ritardo medio della formazione
RitMed = RitardoMedio(aRetRitardi)
' scritta funzione per calcolo deviazione standard della funzione
'
DevStd = CalcolaDeviazioneStd(aRetRitardi)
disCeb = Round(RitMed +(10*DevStd),2)
ScaCeb = Round(disCeb - RitMese,2)
s = RimuoviLastChr(s,".")
ReDim aRisultato(23)
Call AlimetaArrayRisultato(aRisultato,k,s,FreqTot,Scarto,RitMese,RitMed,ritardomax,IncrRitMax,DevStd,disCeb,ScaCeb,nMese(k,1),nMese(k,2),nMese(k,3),nMese(k,4),nMese(k,5),nMese(k,6),nMese(k,7),nMese(k,8),nMese(k,9),nMese(k,10),nMese(k,11),nMese(k,12))
Call AddRigaTabella(aRisultato,,,3,RGB(0,0,0))',"Consolas")
'se decidessi di ordinare il mese? legge il primo colore? No Legge l'ultima istruzione
Call SetColoreCella(CInt(idOrd),RGB(221,255,230),2)
Call SetColoreCella(Mese(EstrazioniArchivioFT) + 11,RGB(215,215,255),2)
Loop
Scrivi FormatSpace("script By I Legend per lottoCed's amici",150,- 1)
Scrivi
Scrivi "Tabella Statistica per formazioni libere" & " ",1,,RGB(252,227,143),,5
Scrivi
Scrivi "Range Ricerca Estrazioni dal :{" & DataEstrazioneFT(Ini) & " } al : {" & DataEstrazioneFT(Fin) & "}",1,,,,3
Scrivi "Estrazioni Totali Analizzati :{" & nEstr & "}",1,,,,3
Scrivi "Numeri di ricerca            :{" & StringaNumeri(nNumeri) & "}",1,,,,3
Scrivi "Sviluppo numeri in           :{" & k - 1 & " " & NomeCombinazione(nCombinazione) & "}",1,,,,3
Scrivi "Analesi combinazione per     :{" & NomeSorte(nSorte) & "}",1,,,,3
Scrivi "Ciclo Teorico                :{" & nValore & "}",1,,,,3
Scrivi "Frequenza Teorica            :{" & freqTeorica & "}",1,,,,3
'Scrivi "Ruota di ricerca             :{" & NomeRuota(aRu(1)) & "}",1,,,,3
Scrivi "Ordinamento colonna num      :{" & aTitolo(idOrd) & "}",1,,,,3
Scrivi "Ordino Colonna in modo       :{" & TipOrd & "}",1,,,,3
Scrivi
Call SetTableWidth("100%")
'If TipOrd = 1 Then Call AddRigaTabella(aTitolo,RGB(108,194,243),,3,vbWhite)',"Consolas")
Call CreaTabella(idOrd,TipOrd,0)
'If ScriptInterrotto Then Exit Sub
End Sub
' riporto qui di seguito tutte le funzioni utilizzate
' per la sub main
' ovviamente possono essere ottimizzate
Sub AlimetaArrayRisultato(aRisultato,k,s,FreqTot,Scarto,RitMese,RitMed,ritardomax,IncrRitMax,DevStd,disCeb,ScaCeb,Gen,Feb,Mar,Apr,Mag,Giu,Lug,Ago,Stt,Ott,Nov,Dic)
aRisultato(1) = k ' id
aRisultato(2) = s ' combinazioni analizzate
aRisultato(3) = FreqTot'frequenza combinazione
aRisultato(4) = Scarto ' differenza freq.reeale e differenza teorica
aRisultato(5) = RitMese ' ritardo cronologico
aRisultato(6) = RitMed ' ritardo medio
aRisultato(7) = ritardomax ' ritardo storico
aRisultato(8) = IncrRitMax ' incremento ritardo storico
aRisultato(9) = DevStd ' deviazione standard
aRisultato(10) = disCeb 'disegualianza di cebicev
aRisultato(11) = ScaCeb ' scarto tra valore ipotizzato e valore del ritardo reale
aRisultato(12) = Gen 'Gennaio ' frequenza per mese
aRisultato(13) = Feb'Gennaio ' frequenza per mese
aRisultato(14) = Mar 'Gennaio ' frequenza per mese
aRisultato(15) = Apr 'Gennaio ' frequenza per mese
aRisultato(16) = Mag 'Gennaio ' frequenza per mese
aRisultato(17) = Giu 'Gennaio ' frequenza per mese
aRisultato(18) = Lug 'Gennaio ' frequenza per mese
aRisultato(19) = Ago 'Gennaio ' frequenza per mese
aRisultato(20) = Stt 'Gennaio ' frequenza per mese
aRisultato(21) = Ott 'Gennaio ' frequenza per mese
aRisultato(22) = Nov 'Gennaio ' frequenza per mese
aRisultato(23) = Dic 'Gennaio ' frequenza per mese
End Sub
Function ImpostaParametri(aNumeri,nCombinazione,nSorte,Ctr,idOrd,TipOrd,Ini)
Dim bRet
Ini = InizioArchivio(1)
If Ini > 0 Then
Call ScegliNumeri(aNumeri)
If IsArray(aNumeri) Then
nCombinazione = ScegliCombinazione
If nCombinazione > 0 Then
nSorte = SelEsito
If nSorte > 0 Then
'If nCombinazione < nSorte Then MsgBox "hai inserito Un Valore errato riscrivi ": nSorte = CInt(SelEsito)
Do While nCombinazione < nSorte
MsgBox "hai inserito Un Valore errato riscrivi ": nSorte = CInt(SelEsito)
If nSorte = - 1 Then Exit Do
Loop
If nSorte > 0 Then
'Ruota = SelRuota ' funziona per selezionare la ruota  statistica su tutte o solo per una ruota
'If Ruota > 0 Then
'aRu(1) = Ruota
'If Ruota = 11 Then
Ctr = 10
Else
Ctr = 1 ' valore utilizzato per calcolo del ciclo teorico
End If
idOrd = Ordinamento ' seleziono la colonna che voglio ordinare
If idOrd > 0 Then
TipOrd = TipoOrdinamento ' Crescente o decrescente
bRet = True ' per default torna true
End If
End If
End If
End If
End If
'End If
'End If
ImpostaParametri = bRet
End Function
Function TrovaFrequenzaMese(aNumeri,nSorte,Ini,fin,nMese)
Dim k
Dim FreqMese
FreqMese = SerieFreqFT(Ini,fin,aNumeri,nSorte)
TrovaFrequenzaMese = FreqMese
End Function
Sub ImpostaEstrazioniAttivePerMese(nMese,Ini,fin)
Dim k
If nMese = "TUTTI" Then
Call ResetEstrazioniAttive(nMese,Ini,fin)
Else
For k = Ini To fin
If Mese(k) = nMese Then
Call ImpostaEstrazioneFT(k,True)
Else
Call ImpostaEstrazioneFT(k,False)
End If
Next
End If
End Sub
Sub ResetEstrazioniAttive(nMese,Ini,fin)
Dim k
For k = Ini To fin
Call ImpostaEstrazioneFT(k,True)
Next
End Sub
Function TrovaRitardoMese(aNumeri,nSorte,Ini,fin,nMese)
Dim k
Dim RitMese
If nMese <> "TUTTI" Then
Call ImpostaEstrazioniAttivePerMese(nMese,Ini,fin)
End If
RitMese = SerieRitardoFT(Ini,fin,aNumeri,nSorte)
TrovaRitardoMese = RitMese
End Function
Function NomeCombinazione(a)
Dim ris
Select Case a
Case 1
ris = "Estratti"
Case 2
ris = "Ambi"
Case 3
ris = "Terzine"
Case 4
ris = "Quartine"
Case 5
ris = "Cinquine"
End Select
NomeCombinazione = ris
End Function
Function Ordinamento
Dim Ord
Dim ret
Dim aTitolo
' gli array partono sempre da 0
aTitolo = Array(0,0,0,"freq","Scarto","Rit","RitMed","RitSto","IncR.s","DevStd","disCeb","ScaCeb99%","GEN","FEB","MAR","APR","MAG","GIU","LUG","AGO","Set","OTT","NOV","DIC")
ret = ScegliOpzioneMenu(aTitolo,3,"Seleziona Ordinamento  per la colonna :")
' serve per gestire il tasto annulla
If ret >= 0 Then
Ord = ret
Else
Ord = ret
End If
Ordinamento = Ord
End Function
Function TipoOrdinamento
Dim Ord
Dim ret
Dim aTitolo
aTitolo = Array("","Crescente","DeCrescente")
ret = ScegliOpzioneMenu(aTitolo,1,"Seleziona Tipo di Ordinamento  :")
' serve per gestire il tasto annulla
If ret >= 0 Then
If ret = 1 Then Ord = 1 : Else Ord = - 1
Else
Ord = ret
End If
TipoOrdinamento = Ord
End Function
Function ScegliCombinazione
Dim ret
Dim aVoci
' gli array partono sempre da 0
aVoci = Array("","Estratti","Ambi","Terzine","Quartine","Cinquine")
ret = ScegliOpzioneMenu(aVoci,3," Combina i numeri In :")
' serve per gestire il tasto annulla
ScegliCombinazione = ret
End Function
Function SelEsito
Dim ret
Dim aVoci
' gli array partono sempre da 0
aVoci = Array("","Estratto","Ambo","Terno","Quaterna","Cinquina")
ret = ScegliOpzioneMenu(aVoci,2," Analesi per Sorte di : ")
SelEsito = ret
End Function
'Function SelRuota
'Dim ret
'Dim aVoci
' gli Array partono sempre da 0
'aVoci = Array("","BARI","CAGLIARI","FIRENZE","GENOVA","MILANO","NAPOLI","PALERMO","ROMA","TORINO","VENEZIA","TUTTE","NAZIONALE")
'ret = ScegliOpzioneMenu(aVoci,1," Analizza Ruota di : ")
'SelRuota = ret
'End Function
Function InizioArchivio(nInizio)
Dim es
Dim ret
ReDim aVoci(EstrazioniArchivioFT)
For es = nInizio To EstrazioniArchivioFT 'EstrazioneFin
aVoci(es) = DataEstrazioneFT(es)
Next
ret = ScegliOpzioneMenu(aVoci,nInizio,"Inserisci Data Inizio Analisi")
InizioArchivio = ret
End Function
Function RitardoMedio(aRitardi())
Dim k
Dim nElementi
Dim nMedia
For k = 1 To UBound(aRitardi) - 1
nElementi = nElementi + 1
nMedia = nMedia + aRitardi(k)
Next
nMedia = Round(Dividi(nMedia,nElementi),2)
RitardoMedio = nMedia
End Function
Function CalcolaDeviazioneStd(aRitardi())
Dim k
Dim somRit,nMedia,nElementi,nVarianza,nSomSQVar
For k = 1 To UBound(aRitardi) - 1
nElementi = nElementi + 1
somRit = somRit + aRitardi(k)
Next
nMedia = Round(Dividi(somRit,nElementi))
For k = 1 To UBound(aRitardi) - 1
nSomSQVar = nSomSQVar +((nMedia - aRitardi(k)) ^ 2)
nVarianza = Round(Dividi(nSomSQVar,nElementi),2)
Next
CalcolaDeviazioneStd = Round(Sqr(nVarianza),2)
End Function
Function ContaEstrazioni(Ini,Fin,r)
Dim Conta,es
For es = Ini To Fin
Conta = Conta + 1
'If SommaEstratti(es,r) >= 15 Then 
Next
ContaEstrazioni = Conta
End Function
 

Allegati

Ultima modifica:
LOGOSILOP.gif

Buona sera a tutti.
Per prima cosa volevo voglio fare i complimenti al bravissimo i legend
che in brevissimo tempo è riuscito a mettere in pratica (script) i consigli/lezioni
dei bravissimi LuigiB, joe91,mike58 e claudio8 ….

BRAVO BRAVO BRAVO​
hai fatto un ottimo script
per la ricerca libera per qualsiasi combinazione.
stickman.gif

Siccome da alcuni mesi sto utilizzando per i miei studi alcuni script
su lotterie diverse dal lotto tradizionale, utilizzando le funzioni con File di Testo [FT],
vorrei chiedere a LuigiB & company
se era possibile poter convertire il presente script nella ricerca statistica su archivi in formato .txt
so che il buon Mike58 già si adoperato in tal senso con altri script (PE).

L'archivio che m'interessa maggiormente è in formato testo composto da 5 estratti su 49 numeri
che di seguito vi elenco alcune estrazioni iniziali:

id,data,n1,n2,n3,n4,n5
===============

1,06/10/2008,19,33,41,24,27
2,08/10/2008,24,48,32,41,22
3,11/10/2008,46,22,10,39,20
4,13/10/2008,11,10,41,37,48
5,15/10/2008,49,28,18,20,40
6,18/10/2008,44,35,4,32,39
7,20/10/2008,43,7,48,31,15
8,22/10/2008,11,28,12,48,14


===============
Mettendo all'inizio dello script il seguente comando:

Call ApriBaseDatiFT("C:\Documents and Settings\Asus\Documenti…… ....txt",5,",",49)

e aggiungendo dove ci vuole nelle altre funzioni il finale FT
... che di queste modifiche non sono capace, grazie.
stickman.gif

Sperando che questa mia richiesta venga presa in considerazione
auguro a tutti una buona serata.
A presto
Silop
Ciao Silop è relativamente facile trasformare lo script di i Legend (riga per riga togli tutto quello che non sarebbe logico "FT" tipo la r di ruota in quanto le funzioni FT non prevedono argomenti tipo ruota perché è implicito che la ruota è quella che metti in Call ApriBaseDatiFTn ..ecc se hai dei dubbi alle funzioni usate metti FT se esiste la funzione lo prenderà altrimenti vale la funzione che è scritta. Di seguito ti metto come ho trasformato lo script di i legend prima versione ho fatto anche quella con i suggerimenti di Luigi ma ce l'ho sul portatile Questo è x la lotteria Pennsilvenia ma cambia solo l'indirizzo con la tua lotteria:
Codice:
Option Explicit
' Lo script si è arricchito un po alla volta quindi si è rallentato nella sua esecuzione
' l'utilizzo è una semplice  ricerca statistica delle combinazioni scelte
' possiamo trovare la frequenza globale della formazione e allo stesso tempo vedere la frequenza mese per mese
' il ritardo cronologico,il ritardo medio,il ritardo storico,e l'incremento del medesimo
' il calcolo effettuato e l'output parrebbe essere  corretto , ma consiglio sempre di verificare con altre fonti , per eliminare o segnalare
'eventuali errori sempre possibili vista l'inesperienza.
' lo script non restituisce  (e non vuole farlo)  previsioni
' script by  I legend per  gli amici di lottoced
'Ringraziamenti :
' senza gli esempi di Mike , di Claudio, di LuigiB, e le *importantissime* Lezioni/spiegazioni di Joe
' non sarei riuscito a scrivere una solo riga
' Purtoppo l'ordina matrice non funziona, le form di scelta sono pronte ma non so come posso utilizzarle
' Se qualcuno vuole ottimizzare lo script  o indicarmi dove ottimizzare sarei davvero grato
'Buono studio  e divertimento a tutti
Sub Main
Dim Ini,Fin,nEstr,es,k,x,r,nValore,idOrd,TipOrd,Ctr
Dim DevStd,disCeb,ScaCeb
Dim s,e,ritardo,ritardomax,IncrRitMax,RitMed,RitMese
Dim Frequenza,freqTeorica,FreqMese,freq,FreqTot,Scarto
Dim nNumeri,aColonne
Dim aNumeri(30)
Dim aRu(1)
Dim nCombinazione,nSorte,nCiclo
ReDim aRetRitardi(0)
ReDim aRetIdEstr(0)
Call ApriBaseDatiFT("C:\Documents and Settings\utente\Dati applicazioni\SpazioMetria\ArchivioPensy\PENSY0.txt",5,",",30)	
Ini = InizioArchivio ' funzione inizio data archivio
Fin = EstrazioniArchivioFT

Call ScegliNumeri(nNumeri)
nCombinazione = ScegliCombinazione
nSorte = CInt(SelEsito)
'r = SelRuota ' funziona per selezionare la ruota  statistica su tutte o solo per una ruota
'aRu(1) = r
'If r = 11 Then Ctr = 10: Else
Ctr = 1 ' valore utilizzato per calcolo del ciclo teorico
idOrd = Ordinamento ' seleziono la colonna che voglio ordinare
TipOrd = TipoOrdinamento ' Crescente o decrescente

'Imposto i titoli delle colonne della tabella statistica
'
ReDim aTitolo(23)
aTitolo(1) = "ID" ' Numero di combinazione
aTitolo(2) = "Comb." '  combinazioni ottenute
aTitolo(3) = "Freq" ' frequenza
aTitolo(4) = "Scarto" ' differenza tra freq.reale e frequenza teorica
aTitolo(5) = "Rit" ' ritardo cronologico attuale
aTitolo(6) = "RitMed" ' ritardo medio combunazione
aTitolo(7) = "RitSto"
aTitolo(8) = "IncR.S"
aTitolo(9) = "DevStd"
aTitolo(10) = "DisCeb"
aTitolo(11) = "ScaCeb96%"
aTitolo(12) = "GEN" ' frequenza nel mese di....
aTitolo(13) = "FEB"' frequenza nel mese di....
aTitolo(14) = "MAR" ' /////
aTitolo(15) = "APR" '////
aTitolo(16) = "MAG" '////
aTitolo(17) = "GIU"
aTitolo(18) = "LUG"
aTitolo(19) = "AGO"
aTitolo(20) = "SET"
aTitolo(21) = "OTT"
aTitolo(22) = "NOV"
aTitolo(23) = "DIC"
' inizializzo la tabella '''la prima riga
InitTabella aTitolo,RGB(108,194,243),,3,RGB(255,255,255),"Consolas"
'conto le estrazioni utili
nEstr = ContaEstrazioni(Ini,Fin)
nValore = Round(CicloTeorico(nCombinazione,nSorte,CInt(Ctr)),2)' ctr= 1 (=1R);=10(=TT)
freqTeorica = Round(Dividi(nEstr,nValore),2)
aColonne = SviluppoIntegrale(nNumeri,nCombinazione) ' sviluppo i l'array dei numeri scelti ,nella combinazione scelta
For k = 1 To UBound(aColonne) ' ciclo per leggere la colonna k della matrice aColonne
s = "" ' dichiaro la stringa combinazione vuota
For e = 1 To nCombinazione ' ciclo la combinazione selezionata
s = s & Format2(aColonne(k,e)) & "." ' questa è la stringa di ritorno dei numeri combinati
aNumeri(e) = aColonne(k,e) 'matrice dei numeri da analizzare
Call StatisticaFormazioneFT(aNumeri,nSorte,ritardo,ritardomax,IncrRitMax,Frequenza,Ini,Fin)
' qui analizzo le frequenze con la funzione trova frequenze per mese
Dim z
ReDim nMese(12)
FreqTot = 0
For z = 1 To 12
nMese(z) = TrovaFrequenzaMese(aNumeri,nSorte,Ini,Fin,z)
Next
For x = 1 To UBound(nMese)
FreqTot = FreqTot + nMese(x)
Next
' funzione per calcolare il ritardo globale della formazione
' questo è un espediente che ho dovuto analizzare visto la frequenza mese
RitMese = TrovaRitardoMese(aNumeri,nSorte,Ini,Fin,"TUTTI")
Scarto = Round(FreqTot - freqTeorica,2)
' richiamo la funzione elenca ritardi, per poter attingere alla marice che elenca i ritardi  voce:( aRetRitardi)
Call ElencoRitardiFT(aNumeri,nSorte,Ini,Fin,aRetRitardi,aRetIdEstr)
' scritta funzione per calcolare il ritardo medio della formazione
RitMed = RitardoMedio(aRetRitardi)
' scritta funzione per calcolo deviazione standard della funzione
'
DevStd = CalcolaDeviazioneStd(aRetRitardi)
disCeb = Round(RitMed +(10*DevStd),2)
ScaCeb = Round(disCeb - RitMese,2)
'
Next
s = Left(s,Len(s) - 1) ' tolgo l'ultimo punto dalla stringa della formazione altrimenti sarebbe es : "12.22.33." anzichè : "12.22.33"
'For es = Ini To Fin
'Call AvanzamentoElab(1,UBound(aColonne),k)
'Call Messaggio("Sto Elaborando la Combinazione :" & s)
'Next
ReDim aRisultato(23)
aRisultato(1) = k ' id
aRisultato(2) = s ' combinazioni analizzate
aRisultato(3) = FreqTot'frequenza combinazione
aRisultato(4) = Scarto ' differenza freq.reeale e differenza teorica
aRisultato(5) = RitMese ' ritardo cronologico
aRisultato(6) = RitMed ' ritardo medio
aRisultato(7) = ritardomax ' ritardo storico
aRisultato(8) = IncrRitMax ' incremento ritardo storico
aRisultato(9) = DevStd ' deviazione standard
aRisultato(10) = disCeb 'disegualianza di cebicev
aRisultato(11) = ScaCeb ' scarto tra valore ipotizzato e valore del ritardo reale
aRisultato(12) = nMese(1)'Gennaio ' frequenza per mese
aRisultato(13) = nMese(2)'Febbraio'
aRisultato(14) = nMese(3)'Marzo'
aRisultato(15) = nMese(4)'Aprile
aRisultato(16) = nMese(5)'Maggio
aRisultato(17) = nMese(6)'Giugno
aRisultato(18) = nMese(7)'Luglio
aRisultato(19) = nMese(8)'Agosto
aRisultato(20) = nMese(9)'Settembre
aRisultato(21) = nMese(10)'Ottobre
aRisultato(22) = nMese(11)'Novembre
aRisultato(23) = nMese(12)'Dicembre
Call AddRigaTabella(aRisultato,,,3,RGB(0,0,0),"Consolas")
'se decidessi di ordinare il mese? legge il primo colore? No Legge l'ultima istruzione
Call SetColoreCella(CInt(idOrd),RGB(221,255,230),2)
Call SetColoreCella(MeseFT(EstrazioneFin) + 11,RGB(215,215,255),2)
Next
Scrivi FormatSpace("script By I Legend per lottoCed's amici",150,- 1)
Scrivi
Scrivi "Tabella Statistica per formazioni libere" & " ",1,,RGB(252,227,143),,5
Scrivi
Scrivi "Range Ricerca Estrazioni dal :{" & GetInfoEstrazioneFT(Ini) & " } al : {" & DataEstrazioneFT(Fin) & "}",1,,,,3
Scrivi "Estrazioni Totali Analizzati :{" & nEstr & "}",1,,,,3
Scrivi "Numeri di ricerca            :{" & StringaNumeri(nNumeri) & "}",1,,,,3
Scrivi "Sviluppo numeri in           :{" & k - 1 & " " & NomeCombinazione(nCombinazione) & "}",1,,,,3
Scrivi "Analesi combinazione per     :{" & NomeSorte(nSorte) & "}",1,,,,3
Scrivi "Ciclo Teorico                :{" & nValore & "}",1,,,,3
Scrivi "Frequenza Teorica            :{" & freqTeorica & "}",1,,,,3
Scrivi "Ruota di ricerca            PENSILVENIA ",1,,,,3
Scrivi "Ordinamento colonna num      :{" & aTitolo(idOrd) & "}",1,,,,3
Scrivi "Ordino Colonna in modo       :{" & TipOrd & "}",1,,,,3
Scrivi
Call SetTableWidth("100%")
Call CreaTabella(idOrd,TipOrd,0)
If ScriptInterrotto Then Exit Sub
End Sub
' riporto qui di seguito tutte le funzioni utilizzate
' per la sub main
' ovviamente possono essere ottimizzate
Function TrovaFrequenzaMese(aNumeri,nSorte,Ini,fin,nMese)
Dim k
Dim FreqMese
For k = Ini To fin
If Mese(k) = nMese Then
Call ImpostaEstrazioneFT(k,True)
Else
Call ImpostaEstrazioneFT(k,False)
End If
Next

FreqMese = SerieFreqFT(Ini,fin,aNumeri,nSorte)
TrovaFrequenzaMese = FreqMese
End Function
Function TrovaRitardoMese(aNumeri,nSorte,Ini,fin,nMese)
Dim k
Dim RitMese
For k = Ini To fin
If MeseFT(k) = nMese Then
Call ImpostaEstrazioneFT(k,True)
Else
Call ImpostaEstrazioneFT(k,False)
End If
Next
For k = Ini To fin
If nMese = "TUTTI" Then Call ImpostaEstrazioneFT(k,True)
Next
RitMese = SerieRitardoFT(Ini,fin,aNumeri,nSorte)
TrovaRitardoMese = RitMese
End Function
Function NomeCombinazione(a)
Dim ris
Select Case a
Case 1
ris = "Estratti"
Case 2
ris = "Ambi"
Case 3
ris = "Terzine"
Case 4
ris = "Quartine"
Case 5
ris = "Cinquine"
End Select
NomeCombinazione = ris
End Function
Function Ordinamento
Dim Ord
ReDim aTitolo(21)
aTitolo(1) = "Freq" ' frequenza
aTitolo(2) = "Scarto" ' differenza tra freq.reale e frequenza teorica
aTitolo(3) = "Rit" ' ritardo cronologico attuale
aTitolo(4) = "RitMed" ' ritardo medio combinazione
aTitolo(5) = "RitSto"
aTitolo(6) = "IncR.S"
aTitolo(7) = "DevStd"
aTitolo(8) = "DisCeb"
aTitolo(9) = "ScaCeb"
aTitolo(10) = "GEN" ' frequenza nel mese di....
aTitolo(11) = "FEB"' frequenza nel mese di....
aTitolo(12) = "MAR" ' /////
aTitolo(13) = "APR" '////
aTitolo(14) = "MAG" '////
aTitolo(15) = "GIU"
aTitolo(16) = "LUG"
aTitolo(17) = "AGO"
aTitolo(18) = "SET"
aTitolo(19) = "OTT"
aTitolo(20) = "NOV"
aTitolo(21) = "DIC"
Ord = ScegliOpzioneMenu(aTitolo,1,"Seleziona Ordinamento  per la colonna :") + 2
Ordinamento = Ord
End Function
Function TipoOrdinamento
Dim Ord
ReDim atitolo(1)
atitolo(0) = "Ascendente"
atitolo(1) = "Discendente"
Ord = ScegliOpzioneMenu(atitolo,0,"Seleziona Tipo di Ordinamento  :")
If Ord = 0 Then Ord = - 1 : Else Ord = 1
TipoOrdinamento = Ord
End Function
Function ScegliCombinazione
Dim combinazione
ReDim aVoci(5)
aVoci(1) = "Estratti"
aVoci(2) = "Ambi"
aVoci(3) = "Terzine"
aVoci(4) = "Quartine"
aVoci(5) = "Cinquine"
combinazione = ScegliOpzioneMenu(aVoci,3," Combina i numeri In :")
ScegliCombinazione = CInt(combinazione)
End Function
Function SelEsito
Dim Esito
ReDim aVoci(5)
aVoci(1) = "Estratto"
aVoci(2) = "Ambo"
aVoci(3) = "Terno"
aVoci(4) = "Quaterna"
aVoci(5) = "Cinquina"
Esito = ScegliOpzioneMenu(aVoci,2," Analesi per Sorte di : ")
SelEsito = CInt(Esito)
End Function
'Function SelRuota
'Dim Ruota
'ReDim aVoci(12)
'aVoci(1) = "BARI"
'aVoci(2) = "CAGLIARI"
'aVoci(3) = "FIRENZE"
'aVoci(4) = "GENOVA"
'aVoci(5) = "MILANO"
'aVoci(6) = "NAPOLI"
'aVoci(7) = "PALERMO"
'aVoci(8) = "ROMA"
'aVoci(9) = "TORINO"
'aVoci(10) = "VENEZIA"
'aVoci(11) = "TUTTE"
'aVoci(12) = "NAZIONALE"
'Ruota = ScegliOpzioneMenu(aVoci,1," Analizza Ruota di : ")
'SelRuota = CInt(Ruota)
'End Function
Function SelMese
'Dim Ruota
ReDim aVoci(12)
aVoci(1) = "GENNAIO"
aVoci(2) = "FEBRAIO"
aVoci(3) = "MARZO"
aVoci(4) = "APRILE"
aVoci(5) = "MAGGIO"
aVoci(6) = "GIUGNO"
aVoci(7) = "LUGLIO"
aVoci(8) = "AGOSTO"
aVoci(9) = "SETTEMBRE"
aVoci(10) = "OTTOBRE"
aVoci(11) = "NOVEMBRE"
aVoci(12) = "DICEMBRE"
Ruota = ScegliOpzioneMenu(aVoci,1," Analizza Mese di : ")
SelMese = CInt(Ruota)
End Function
Function InizioArchivio
Dim es,Inizio
ReDim aVoci(EstrazioniArchivioFT)
For es = 1000 To EstrazioniArchivioFT
aVoci(es) = DataEstrazioneFT(es)
Next
Inizio = ScegliOpzioneMenu(aVoci,1000,"Inserisci Data Inizio Analisi")
InizioArchivio = Inizio
End Function
Function RitardoMedio(aRitardi())
Dim k
Dim nElementi
Dim nMedia
For k = 1 To UBound(aRitardi) - 1
nElementi = nElementi + 1
nMedia = nMedia + aRitardi(k)
Next
nMedia = Round(Dividi(nMedia,nElementi),2)
RitardoMedio = nMedia
End Function
Function CalcolaDeviazioneStd(aRitardi())
Dim k
Dim somRit,nMedia,nElementi,nVarianza,nSomSQVar
For k = 1 To UBound(aRitardi) - 1
nElementi = nElementi + 1
somRit = somRit + aRitardi(k)
Next
nMedia = Round(Dividi(somRit,nElementi))
For k = 1 To UBound(aRitardi) - 1
nSomSQVar = nSomSQVar +((nMedia - aRitardi(k)) ^ 2)
nVarianza = Round(Dividi(nSomSQVar,nElementi),2)
Next
CalcolaDeviazioneStd = Round(Sqr(nVarianza),2)
End Function
Function ContaEstrazioni(Ini,Fin)
Dim Conta,es
For es = Ini To Fin
If SommaEstrattiFT(es) >= 15 Then Conta = Conta + 1
Next
ContaEstrazioni = Conta
End Function
 
Grazieeeeeeeeeee

Grazieeeeeeeeeee

LOGOSILOP.gif

Buona domenica a tutti.

Grazie Mike58 sei stato gentilissimo e veloce
ho provato il tuo script modificato con il mio archivio sulla lotteria Francese (5/49) e non mi da errori.
Adesso controllo anch'io i dati sui mesi.
Ho provato anche quello di Filotto (che ringrazio) con lo stesso archivio, ma mi da un errore strano.
All'inizio si apre una finestra con scritto all'interno :380-Invalid property value
e sopra : F_SelMenuLD.LoadComb
Comunque grazie a tutte e due.
stickman.gif

A presto
Silop
 
Lo Script di fillotto da errore anche a me con il mio archivio sembra non riconoscere lo sviluppoCombinazione, magari + in la ricontrollo meglio, mentre il mio sul mio archivio con tutti i mesi non esistenti non mette bene le frequenze sui relativi MESI.

Comunque se a te Silop va bene in quanto hai tutti i mesi in archivio il problema non sussiste.
Lo script sembra funzionare, se ci sono dei ulteriori correttivi vedremo di rimetterci mano.

Ciao
 
a me funziona ......

a me funziona ......

strano che a voi non funzioni avete cambiato queste righe
Codice:
Call ApriBaseDatiFT("C:\Documents and Settings\utente\Dati applicazioni\SpazioMetria\ArchivioPensy\PENSY0.txt",5,",",30)	
Ini = InizioArchivio ' funzione inizio data archivio
Fin = EstrazioniArchivioFT
io ho questo percorso voi evidentemente un altro.....penso inoltre che possa dipendere da:
Codice:
Function InizioArchivio
Dim es,Inizio
ReDim aVoci(EstrazioniArchivioFT)
For es = 1000 To EstrazioniArchivioFT
aVoci(es) = DataEstrazioneFT(es)
Next
Inizio = ScegliOpzioneMenu(aVoci,1000,"Inserisci Data Inizio Analisi")
InizioArchivio = Inizio
End Function
in questa funzione ho messo 1000 che corrisponde al 31/1/2010 in realtà l'archivio inizia da 1 al 2774
ecco l'output
PensLegen.jpg
 
Forse ho capito perché non funziona a voi provate a modificare la funzione:
Codice:
Function InizioArchivio
Dim es,Inizio
ReDim aVoci(EstrazioniArchivioFT)
For es = 1000 To EstrazioniArchivioFT
aVoci(es) = DataEstrazioneFT(es)
Next
Inizio = ScegliOpzioneMenu(aVoci,1000,"Inserisci Data Inizio Analisi")
InizioArchivio = Inizio
End Function
al posto di 1000 mettete 0001 quindi 2 correzioni e funzionerà almeno a me se cambiavo archivio mi dava lo stesso errore di silop e sparisce se metto 0001 !!
 
buona giornata x luigi:
grazie della risposta, si ho spaziometria 1.4.88 ma al momento non riesco ad aggiornare , non ho c onnessione,prossimamente provvedo ad aggiornare, Allora per l'exe aspetto la versione nuova.....
sono felice che questa ricerca possa tornare utile su più lotterie , bisogna però controllare se le statistiche ritornino un valore corrtto...
esempio ciclo teorico, frequenza teorica e media dei ritardi , i valori utili li ottengo da li.....
Sono proprio contento, oggi pranzo in famiglia quindi non ho fatto nulla, ma domani mi ricemento......
Se avete idee e sviluppi chiedete pure , tutto è migliorabile:)
Buona serata a tutti :)
 
Ciao se i numeri sono più di 5 bisogna rivedere le frequenze teoriche altrimenti gli scarti sono inesatti:
ciclo teorica di un estratto su una ruota =18 =90/5 Su 10 ruote 18/10 =1,8
se i numeri diventano più di cinque bisogna rifare i calcoli state attenti, la statistica l'ho pensata per il lotto, se i numeri
sono meno di 90 cambia tutto ...Mi raccomando state attenti ai calcoli che ritornino valori corretti altrimenti ci lavoriamo su:)
Ci aggiorniamo :)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 21 gennaio 2025
    Bari
    78
    09
    70
    03
    23
    Cagliari
    32
    88
    30
    13
    45
    Firenze
    87
    23
    15
    39
    86
    Genova
    71
    48
    67
    59
    23
    Milano
    58
    50
    80
    85
    29
    Napoli
    90
    81
    79
    82
    62
    Palermo
    70
    33
    90
    05
    10
    Roma
    15
    71
    55
    85
    76
    Torino
    89
    09
    18
    33
    69
    Venezia
    44
    80
    82
    73
    58
    Nazionale
    80
    25
    13
    63
    17
    Estrazione Simbolotto
    Bari
    39
    36
    34
    14
    31
Indietro
Alto