Novità

Si può fare di meglio?

fillotto

Advanced Member >PLATINUM<
i legend;n2133239 ha scritto:
Ciao a bari se non ho fatto errori ho trovato 62 settimo con 9 presenze
a Firenze c'è anche una settimana con 10 presenze.
Ciao a tutti :)

62 settine???? sempre nelle ultime 18 estrazioni?? A questo punto faccele vedere!!! anzi sarebbe bene che mostrassi lo script:p:p
Luigi al # 20 ti riferisci a firenze ultime 18 estrazioni? Anche x te facci vedere lo script :p:p
 
Ultima modifica:
L

LuigiB

Guest
si su firenze ... come ho detto in onore a legend che ha usato quella ruota .. cosi vediamo se la famosa lunghetta è la stessa e comunque si puo fare un confronto ..
riguardo lo script non essere impaziente qua va messo a punto... e poi qua se non parla Nikor non se move na foja :) eheheh .Capito Nikor si attende il tuo parere .... ciao ...
 

i legend

Premium Member
Ciao a Tutti :)
Luigi mi sa che sono piccolo piccolo , visto che il mio script gira in un quarto d'ora ,a differenza del tuo iperveloce
non ho costruito un algortmo deterministico ovviamente, ho caricato in un array i numeri sortiti nelle 18 estrazioni e non tutti e 90, e questo ha dato una bella accelerata allo script
ecco le settine che ho trovato io , ma non so se sono esatte, verificare per favore :)
Codice:
RUOTA:BARI
Formazione            P  Fr   Rc  Rmx
02.16.20.59.77.84.89  9  09  00  03
03.04.16.20.73.77.89  9  09  00  03
03.04.20.45.73.77.84  9  16  00  03
03.04.20.47.73.77.84  9  13  00  03
03.04.20.57.73.77.84  9  13  00  03
03.04.20.73.77.80.84  9  13  00  03
03.15.40.52.54.58.84  9  09  01  03
03.16.40.59.77.84.87  9  11  00  03
03.16.45.51.75.77.89  9  09  00  03
03.20.25.59.60.76.77  9  09  00  03
03.22.40.49.54.84.87  9  09  01  03
03.40.45.59.77.87.89  9  09  00  04
03.49.54.59.74.77.84  9  11  00  03
03.49.54.59.77.80.84  9  11  00  02
03.49.54.59.77.84.85  9  11  00  03
03.54.58.59.77.84.87  9  11  00  03
04.15.20.25.73.77.84  9  09  00  03
04.15.20.73.77.84.89  9  09  00  03
04.16.20.73.77.84.89  9  11  00  03
04.20.22.73.77.84.89  9  09  00  03
04.20.25.27.73.77.84  9  09  00  03
04.20.25.45.73.77.84  9  11  00  03
04.20.25.52.73.77.84  9  09  00  03
04.20.25.60.76.77.84  9  09  00  05
04.20.25.73.76.77.84  9  09  00  03
04.20.25.73.77.80.84  9  09  00  03
04.20.40.73.77.84.89  9  09  00  03
04.20.45.72.73.77.84  9  11  00  03
04.20.45.73.77.84.89  9  11  00  03
04.20.47.73.77.84.89  9  09  00  03
04.20.57.73.77.84.89  9  09  00  03
04.20.72.73.77.80.84  9  09  00  03
04.20.73.77.80.84.89  9  09  00  03
04.40.45.77.84.87.89  9  09  00  04
11.16.20.73.77.84.89  9  09  00  03
15.16.20.25.73.77.84  9  09  02  03
16.20.45.59.77.84.89  9  11  00  03
16.20.45.73.77.84.89  9  11  02  03
16.20.47.73.77.84.89  9  09  02  03
16.20.51.73.77.84.89  9  11  00  03
16.20.57.73.77.84.89  9  09  02  03
16.20.59.60.77.84.89  9  09  00  03
16.20.59.69.77.84.89  9  09  00  03
16.20.59.73.77.84.89  9  11  00  03
16.20.59.77.80.84.89  9  09  00  03
16.20.73.77.80.84.89  9  09  02  03
16.40.45.59.77.84.87  9  09  00  03
16.45.51.59.77.84.89  9  11  00  03
16.45.51.75.77.84.89  9  11  00  03
16.45.59.77.84.87.89  9  09  00  03
20.22.54.59.77.84.89  9  09  00  03
20.22.54.73.77.84.89  9  09  02  03
20.25.52.54.73.77.84  9  09  02  03
20.25.59.60.76.77.84  9  09  00  03
20.25.60.75.76.77.84  9  09  02  03
22.45.49.54.77.84.89  9  09  03  02
22.45.51.54.77.84.89  9  09  00  05
22.45.54.59.77.84.89  9  09  00  03
22.49.54.59.77.84.89  9  09  00  03
25.45.51.52.54.77.84  9  09  00  02
40.45.59.77.84.87.89  9  09  00  04
40.45.75.77.84.87.89  9  09  01  03
45.49.54.59.74.77.84  9  09  00  02
45.49.54.59.77.84.85  9  09  00  02
45.49.54.59.77.84.89  9  09  00  02
45.54.58.59.77.84.87  9  09  00  03
tempo elaborazione:
Codice:
Ruota :                                 Firenze
Formazione            P  Fr   Rc  Rmx
01.30.42.51.62.77.78  9  09  02  02
01.42.44.51.52.62.77  9  11  02  03
01.42.44.52.55.62.77  9  09  02  03
01.42.44.52.56.62.77  9  09  02  03
01.42.44.52.62.77.84  9  09  02  03
05.09.16.42.59.62.77  9  11  05  02
05.11.16.42.44.59.77  9  11  04  02
05.11.16.42.59.62.77  9  11  05  02
05.16.42.59.60.62.77  9  11  05  02
05.16.42.59.60.77.90  9  09  01  05
05.16.42.59.62.73.77  9  11  05  02
05.16.42.60.62.77.90  9  09  01  03
06.11.16.42.44.62.77  9  11  04  02
06.11.16.42.44.64.77  9  09  04  02
06.13.16.42.44.62.77  9  11  04  03
06.13.27.42.44.62.77  9  09  04  03
06.13.42.44.59.62.77  9  11  04  03
06.13.42.44.62.77.79  9  09  04  03
06.16.42.60.62.77.90  9  09  01  03
07.11.16.44.59.76.77  9  09  04  02
09.42.44.60.62.77.90  9  09  01  03
11.12.42.44.60.62.77  9  09  01  02
11.16.27.42.44.62.77  9  11  04  02
11.16.34.44.59.76.77  9  09  04  02
11.16.42.44.47.59.77  9  09  04  02
11.16.42.44.59.61.77  9  09  04  02
11.16.42.44.59.62.77  9  13  04  02
11.16.42.44.59.72.77  9  09  04  02
11.16.42.44.59.75.77  9  09  04  02
11.16.42.44.59.76.77  9  11  04  02
11.16.42.44.59.77.87  9  09  04  02
11.16.42.44.62.77.79  9  11  04  02
11.16.44.57.59.76.77  9  09  04  02
11.34.42.44.60.62.77  9  11  01  02
11.37.42.44.60.62.77  9  09  04  02
11.37.42.44.62.73.77  9  09  04  02
11.42.44.60.62.65.77  9  09  04  02
11.42.44.60.62.71.77  9  09  01  02
11.42.44.60.62.73.77  9  11  04  02
[B]11.42.44.60.62.77.90  10  10  01  02[/B]
11.42.44.62.73.77.90  9  09  04  02
12.16.37.42.60.62.77  9  09  01  03
12.30.42.44.52.62.77  9  09  03  02
12.37.42.44.60.62.77  9  09  01  03
12.37.42.44.62.77.90  9  09  01  03
12.42.44.60.62.73.77  9  09  01  03
12.42.60.62.73.77.78  9  09  01  03
13.42.44.60.62.73.77  9  09  04  02
13.42.44.60.62.77.90  9  09  01  03
16.27.42.60.62.77.90  9  09  01  03
16.34.42.59.60.62.76  9  09  01  03
16.34.44.59.60.76.77  9  09  01  04
16.42.44.59.60.77.90  9  09  01  04
16.42.44.60.62.77.90  9  11  01  03
16.42.51.60.62.77.90  9  09  01  03
16.42.59.60.62.76.90  9  09  01  03
16.42.59.60.62.77.90  9  11  01  03
16.42.60.62.77.79.90  9  09  01  03
16.42.60.62.77.86.90  9  09  01  03
16.44.59.60.76.77.90  9  09  01  04
18.42.44.60.62.73.77  9  09  04  02
18.42.44.60.62.77.90  9  09  01  03
23.30.42.44.52.62.77  9  11  03  02
30.37.42.44.52.62.77  9  09  03  02
30.37.42.44.62.65.77  9  09  03  02
30.42.44.52.62.77.78  9  11  03  02
34.42.44.60.62.73.77  9  11  01  03
37.42.44.52.62.65.77  9  09  03  03
42.44.52.60.62.65.77  9  09  03  03
42.44.52.60.62.73.77  9  09  04  02
42.44.52.60.62.77.90  9  09  01  03
42.44.52.62.65.73.77  9  09  03  03
42.44.52.62.65.77.90  9  09  03  03
42.44.60.62.71.73.77  9  09  01  03
42.44.60.62.73.77.90  9  11  01  03
tempo elaborazione:
sono tutte da verificare , ho provato lunghette random e corrispondono
lo script che ho fatto, non è flessibile, non è elegante ,e dato che qualcuno studia i nostri script , è meglio aspettare quello di luigi, sicuramente elegante e bello e veloce :)
visto a casa abbattuto dall influenza, almeno mi sono divertito con lo script :)
fatemi sapere
i titoli delle colonne non sono allineati ,sono formazione presenze frequenze ritardo, ritardo max
 
Ultima modifica:

Nikor

Premium Member
Un saluto al Mitico Luigi. ed a Tutte/i sono spiacente ma non posso partecipare , non ho più accesso ai dati, un probabile crash di sistema che si era già verificato in passato……. Ieri a tarda sera provando alcune ruote mi pare di ricordare che Cagliari aveva avuto solo 7 sorteggi !
contro i 8,9 e 10 di Firenze e stavo appunto verificando ( Tutte ) quando saltò tutto l’am baradam i pochi dati erano ancora parziali, specie quello di Cagliari con solo 7 presenze nel ciclo considerato fino a ieri, a tutte sempre parziale mi dava 28 presenze ( nazionale esclusa ) se avete la possibilità di verificarmi ( tutte ) le 10 ruote per vedere almeno a che punto ero arrivato… Grazie in anticipo ! questa sera dopo 2 ore non ho ancora concluso niente , ci guarderò con calma Domenica….

I 7 numeri che ero riuscito a trascrivere appena appena in tempo a Tutte , erano questi anche se ancora parziali. – 04-06-22-42-62-74-77. (28……) però solo 28 mi sembrano poche......

Nikor.
 

fillotto

Advanced Member >PLATINUM<
Una domanda x Luigi parlo del tuo post # 20 la colonna frequenza a cosa si riferisce? le presenze si riferiscono agli ambi o sorti superiori che si verificano nell'arco delle 18 estraz. prese in considerazione , ma la frequenza non so....
 
L

LuigiB

Guest
Ciao quando scaturisce un terno ci sono 3 ambi e tre viene conteggiato come frequenza ammettendo di aver analizzato un'estrazione sola avremo frequenza 3 presenze 1
 

joe

Advanced Member >PLATINUM PLUS<
Pare si possa far di meglio ...

... ma bisogna stare nella stanza dei bottoni.

Esserci confusione sulle date delle estrazioni ... eppoi non dimenticare che ...

c'è chi disse che in certe occasioni «A pensar male del prossimo si fa peccato ma si indovina»

Parole papali papali di cui s'ha ricordo.

Se fosse così, 10 Ambi sarebbero meglio di 11 e direttamente 20. Ed Oltre ...

wk1qfm.jpg


:)
 

Nikor

Premium Member
LuigiB;n2133378 ha scritto:
Ciao quando scaturisce un terno ci sono 3 ambi e tre viene conteggiato come frequenza ammettendo di aver analizzato un'estrazione sola avremo frequenza 3 presenze 1

Francamente credevo che il muro tra presenze e frequenze era superato da tempo, ma ahimè sembra di nò ...eppure è di una comprensione elementare e sarebbe come dire :
Eccezzionale !!! ho trovato 20 frequenze in 18 estrazioni ...beh le 20 frequenze potrebbero essere state il resoconto di sole 2 Presenze!

Mi spigo meglio , se i nostri 7 numeri hanno dato 2 cinquine in un ciclo di 18 estrazioni senza fare alcun ambo, terno e quaterna si contano esattamente 20 frequenze ed è semplice comprendere che in una cinquina siano inglobati 10 Ambi !

Pazienza ...Nikor. riprendo a breve quanto avevo lasciato in sospeso , visto che ancora nessuno mi ha gentilmente risposto per quanto era relativo al topic # 24.
 

Nikor

Premium Member
Nikor;n2133341 ha scritto:
Un saluto al Mitico Luigi. ed a Tutte/i sono spiacente ma non posso partecipare , non ho più accesso ai dati, un probabile crash di sistema che si era già verificato in passato……. Ieri a tarda sera provando alcune ruote mi pare di ricordare che Cagliari aveva avuto solo 7 sorteggi !
contro i 8,9 e 10 di Firenze e stavo appunto verificando ( Tutte ) quando saltò tutto l’am baradam i pochi dati erano ancora parziali, specie quello di Cagliari con solo 7 presenze nel ciclo considerato fino a ieri, a tutte sempre parziale mi dava 28 presenze ( nazionale esclusa ) se avete la possibilità di verificarmi ( tutte ) le 10 ruote per vedere almeno a che punto ero arrivato… Grazie in anticipo ! questa sera dopo 2 ore non ho ancora concluso niente , ci guarderò con calma Domenica….

I 7 numeri che ero riuscito a trascrivere appena appena in tempo a Tutte , erano questi anche se ancora parziali. – 04-06-22-42-62-74-77. (28……) però solo 28 mi sembrano poche......

Nikor.

L’altra sera dopo il Crash di sistema sul data base mi trovavo con dati parziali ed avevo chiesto il Vostro aiuto per verificare se sarebbero stati definitivi………
Il primo era, Cagliari sono solo 7 le presenze sul range dell’ultimo ciclo escludendo l’ultima estrazione???

La seconda era, per Tutte le ruote ( escluso Nazionale ) sono solo 28 le presenze ? perché mi sembrano poche e sicuramente l’elaborazione non era stata completata!

Rimane sotto inteso che per presenze Ambo in gergo informatico si intende ( > = 2 )

Bene considerando che i vecchi proverbi non si smentiscono mai , ovvero a mali estremi, estremi rimedi!
Ho rispolverato Spaziometria! Di Luigi.B che non finisce mai di stupire! Con il vecchio metodo Nikor che come pare è ancora di moda e risolve in parte alcune domande , come nel mio caso ( 28 presenze sembrano poche ) il tempo di saltare il pasto con un veloce tramezzino ed i miei dubbi hanno trovato riscontro.
La videata di Spaziometria:

rifiltro.jpg

Si evince che le presenze sono lievitate e da 28 emrgono 2 a 29! ed un 30 !!! saranno le massime? per il momento non ve lo saprei direre…....….

Nikor.
 
L

LuigiB

Guest
Nikor io per aiutarti devo aspettare di tornare a casa...sono al lavoro ora...comunque appena arrivo metterò il mio script cosi lo potete usare....ciao...
 

fillotto

Advanced Member >PLATINUM<
joe;n2133379 ha scritto:
Pare si possa far di meglio ...

... ma bisogna stare nella stanza dei bottoni.

Esserci confusione sulle date delle estrazioni ... eppoi non dimenticare che ...

c'è chi disse che in certe occasioni «A pensar male del prossimo si fa peccato ma si indovina»'?

Parole papali papali di cui s'ha ricordo.

Se fosse così, 10 Ambi sarebbero meglio di 11 e direttamente 20. Ed Oltre ...

wk1qfm.jpg


:)

se ho capito bene quello che dice Joe non puo essere che freq 20 sia migliore di 10 presenze nell'esempio visivo a Palermo ci sono 2 cinquine che si formano utilizzando 7 numeri (3, 13, 23, 36, 48, 68, 79).Mi domando è meglio per un eventuale previsione utilizzare questi numeri(7num. in 2 cinquine)o è meglio affidarsi alla presenza nell'ambito di 18 estrazioni di 10 ambi o sorti superiori?
 

Nikor

Premium Member
LuigiB;n2133407 ha scritto:
Nikor io per aiutarti devo aspettare di tornare a casa...sono al lavoro ora...comunque appena arrivo metterò il mio script cosi lo potete usare....ciao...

Buon giorno Luigi… tranquillo che non scappa niente.

Il Tuo prossimo intervento sarà di sicuro un altro valore aggiunto !

Quanto mi stava a cuore sapere , lo ho già verificato con il Tuo Superlativo Software ! con la tabella postata al topic # 29.

Poi come scritto in precedenza si continua a mescolare le mele con le pere…….. se le mele sono le presenze, le pere saranno le frequenze , 2 argomenti che anche se possa sembrare vadano in parallelo sono ben distanti nel costrutto……. E se non ricordo male Fill.. aveva chiesto nel thread di apertura le maggiori presenze per ambo , che con le frequenze globali hanno poco a che fare .

Se dovessimo considerare una sola estrazione la presenza per estrazione non potrà mai essere diversa da ( = 1 ) indipendentemente che siano usciti 3 , 6 o 10 Ambi ! poi ugni uno ha le sue ottiche che vanno rispettate……..

Nikor.
 
L

LuigiB

Guest
Infatti...Io ho scritto esattamente così quando spiegavo a filotto la differenza tra f è p...ho fatto proprio l esempio di un estrazione sola un terno sono 3 anni e 3 viene conteggiato come frequenza mentre la presenza va ad 1...
 
L

LuigiB

Guest
Comunque il discorso per me ha una certa importanza...vediamo bene ai fini previsionistici una lunghetta vale l altra se della stessa dimensione tuttavia se si è interessati a volere una lunghettae che abbia fatto centro nel maggior numero di giocate si deve giustamente valutare e presenze....infondo le statistiche spesso ingannano se intervistando 100 persone troviamo 99 disoccupati ed uno che guadagna 100000 euro al mese risulterebbero 100 persone che guadagnano 1000 euro per uno....
 

joe

Advanced Member >PLATINUM PLUS<
Io la mia idea l'ho espressa molti mesi fa.

Perlatro non mia ma che nasce dall'osservazione delle realtà

(ricordo si discuteva di questo con Surmang)

Secondo me ... si contano le presenze.

Una o 10 che siano. (Trattando di Ambi).

Se 10 avvenissero in una sola estrazione di avrà una frequenza di quell'estrazione uguale a 10.

Se avvenissero invece in 10 estrazioni si ha frequenza UNO (in 10 estrazioni).

Questo vale per tutte le discipline scientifiche.

Ci sono grandezze fondamentali e derivate.

Così come il chilometro misura le Distanze ... il "chilometri all'ora" misura le Velocità.

Sono cose diverse con unità di misura diverse.

Le presenze sono una grandezza fondamentale. (che si esprimono con un numero puro)

Le frequenze ed i chilometri all'ora sono unità di misura derivate.

Quindi chi misura le frequenze come fossero presenze ...

cioè con la stessa unità di misura ... scientificamente sbaglia.

Giusto quanto scrive Luigi la frequenza è una sorte di media.

Un certo numero di presenze in un determinato tempo.

Nel caso da me esposto sarebbero 7 numeri che pagano 20 ambi ... 20 terni ... 10 quaterne e 2 cinquine ...

... oppure 7 numeri che pagano "solo" 20 ambi.

:)
 
L

LuigiB

Guest
ciao Joe ,ciao a tutti ...
In questo specifico caso della lunghetta piu prolifica per una determinata sorte io individuo come frequenza il numero di combinazioni di quella determinata sorte che effettivamente sono uscite nel range considerato come detto se la lunghezza realizza un terno e la sorte voluta era perambo di ambi ce ne sono 3 , per presenza invece intendo il numero di estrazioni in cui la lunghetta ha riportato una vincita .. all'inizio lo script lo avevo fatto per frequenza poi dopo l'intervento di Nikor ho preferito cambiarlo , badiamo bene per me sono tutte stronzate ma se uno vuole la lunghetta piu prolifica perche pensa che nelle estrazioni successive possa continuare il trend bisognava usare le presenze ed era giusto... questo è lo script.

un saluto a tutti ...


Codice:
Option Explicit
Class clsCombinazione
   Private aNum
   Private aBNum
   Private mFrequenze
   Private mPresenze
   Private mClasse
   Private mKey
   Private aIdEstr
   Private nTrov

   Private Sub Class_Initialize()
       mFrequenze = 0
       mPresenze = 0
       ReDim aBnum(90)
   End Sub

   Public Property Get Classe
      Classe = mClasse
   End Property
   Public Property Let Classe(v)
      mClasse = v
   End Property
   Public Property Get ArrayNum
      ArrayNum = aNum
   End Property
   Public Property Get Key
      Key = mKey
   End Property
   Public Property Let Key(v)
      mKey = v
   End Property
   Public Property Get Presenze
      Presenze = mPresenze
   End Property
   Public Property Get Frequenze
      Frequenze = mFrequenze
   End Property

   Public Property Get Combinazione
      Combinazione = StringaNumeri(aNum,,True)
   End Property
   Sub IncrementaFrequenze
      mFrequenze = mFrequenze + 1
   End Sub

   Sub SetNumeri(aNumTmp)
      Dim k
      aNum = aNumTmp
      For k = 1 To UBound(aNum)
         aBNum(aNum(k)) = True
      Next
   End Sub
   Sub CalcolaFrequenza(aRuote,nSorte,nIni,nFin)
      mFrequenze = SerieFreqTurbo(nIni,nFin,aNum,aRuote,nSorte)

   End Sub
   Sub CalcolaPresenze(aRuote,nSorte,Inizio,Fine)

      Dim k,r,e,nPunti,aNumRuota,nPresenze
      Dim aB
      nPresenze = 0

      For k = Inizio To Fine
         For r = 1 To UBound(aRuote)
               Call GetArrayNumeriRuota(k,aRuote(r),aNumRuota)

               nPunti = 0
               For e = 1 To 5
                  If aBNum(aNumRuota(e)) Then
                     nPunti = nPunti + 1
                  End If
               Next
               If nPunti >= nSorte Then
                  nPresenze = nPresenze + 1
               End If
         Next
      Next

      mPresenze = nPresenze

   End Sub

   Sub AddIdEstr(v)
      nTrov = nTrov + 1
      ReDim Preserve aIdEstr(nTrov)
      aIdEstr(nTrov) = v

   End Sub
End Class

Sub Main
   Dim nEstrDaUSare,nClasse,nSorte,CollLunghette,nIni,nFin

   nEstrDaUSare = 18
   nClasse = 7
   nSorte = 2
   ReDim aRuote(1)
   aRuote(1) = FI_


   nIni =(EstrazioneFin - nEstrDaUSare) + 1
   nFin = EstrazioneFin
   Set CollLunghette = GetCollLunghettaMigliori(nIni,nFin,nClasse,nSorte,aRuote)
   Call AlimentaTabOutput(CollLunghette,aRuote,nClasse,nSorte)
   MsgBox TempoTrascorso


End Sub
Sub AlimentaTabOutput(CollLunghette,aRuote,nClasse,nSorte)
   Dim av,cLung

   Scrivi "Ruote  : " & StringaRuote(aRuote)
   Scrivi "Classe : " & nClasse
   Scrivi "Sorte  : " & nSorte


   av = Array("","Lunghetta","Frequenza","Presenza")
   Call InitTabella(av)

   For Each cLung In CollLunghette
      av(1) = cLung.Combinazione
      av(2) = cLung.Frequenze
      av(3) = cLung.Presenze
      Call AddRigaTabella(av)
   Next
   Call CreaTabella

End Sub
Function GetCollLunghettaMigliori(Inizio,Fine,nClasse,nSorte,aRuote)

   Dim CollComb,cComb
   Dim CollLung,cLung
   Dim k,j,e
   Dim nFatte,nDaFare
   Dim nRetFrequenze
   Dim sKey
   ReDim aCol(nSorte)
   ReDim abNumValidi(90)

   Set CollComb = GetNewCollection
   Set CollLung = GetNewCollection

   ' alimento una collection con tutte le combinazioni di classe <nSorte> che si
   ' formano con le cinquine comprese nel range interessato
   ' di ogni singola combinazione si calcolano le frequenze
   For k = Inizio To Fine
      For j = 1 To UBound(aRuote)
         ReDim aNum(0)
         Call GetArrayNumeriRuota(k,aRuote(j),aNum)
         For e = 1 To 5
            abNumValidi(aNum(e)) = True
         Next
         Call OrdinaMatrice(aNum,1)

         Call InitSviluppoIntegrale(aNum,nSorte)
         Do While GetCombSviluppo(aCol)
            sKey = "k" & StringaNumeri(aCol,,True)
            If GetItemCollection(CollComb,sKey,cComb) Then
               cComb.IncrementaFrequenze
            Else
               Set cComb = New clsCombinazione
               cComb.Classe = nSorte
               cComb.SetNumeri(aCol)
               cComb.key = sKey
               cComb.IncrementaFrequenze
               Call AddItemColl(CollComb,cComb,sKey)
            End If
         Loop

      Next
      Call AvanzamentoElab(Inizio,Fine,k)
   Next
   Call AvanzamentoElab(Inizio,Fine,Inizio)

   ' ordino la collection contenente tutte le combinazioni di classe <nSorte> per il valore frequenza
   Call OrdinaItemCollection(CollComb,"Frequenze","Key")

   ' da ognuna delle combinazioni base scasturirà una lunghetta quindi ciclo su tutte
   ' le combinazioni base presenti nella collection e per ciascuna costruirò una lunghetta
   nDaFare = CollComb.count
   nFatte = 0
   For Each cComb In CollComb


      ReDim aRetCol(nClasse)
      ' ottiene la lunghetta "migliore" che contiene la combinazione base
      If GetLung(cComb,aRetCol,nRetFrequenze,CollComb,Inizio,Fine,aRuote,nSorte,nClasse,abNumValidi) Then

          ' aggiungo la lunghetta trovata in una nuova collection
          Set cLung = New clsCombinazione
          cLung.Classe = nClasse
          Call OrdinaMatrice(aRetCol,1)
          cLung.SetNumeri(aRetCol)
          sKey = "k" & StringaNumeri(aRetCol,,True)
          Call cLung.CalcolaFrequenza(aRuote,nSorte,Inizio,Fine)
          Call cLung.CalcolaPresenze(aRuote,nSorte,Inizio,Fine)


          Call AddItemInColl(cLung,sKey,CollLung)


      End If

      nFatte = nFatte + 1
      If nFatte Mod 10 = 0 Then
         Call AvanzamentoElab(1,nDaFare,nFatte)
         If ScriptInterrotto Then Exit For
         DoEventsEx
      End If
   Next

   ' ordino la collection delle lunghette trovate per poi mostrarle in output
   Call OrdinaItemCollection(CollLung,"Presenze")
   Set GetCollLunghettaMigliori = CollLung


End Function
Sub AddItemInColl(cItem,sKey,Coll)
   On Error Resume Next

   Coll.Add cItem,sKey
   If Err <> 0 Then Err.Clear
End Sub
Function GetLung(cComb,aRetCol,nRetPres,collComb,Inizio,Fine,aRuote,nSorte,nClasse,abNumValidi)

   ' a partire dalla combinazione base costruisce la lunghetta migliore (piu prolifica per presenze)

   Dim nPos,n,nPresMax,nNum,nPresTmp,k,aNumBase
   Dim aNumDaSvil,nQtNumDaSvil,aColDaPrendere,bFound
   ReDim aBUsati(90)

   Dim objSvil
   Dim sKey
   Dim cCombTmp
   Dim nClasseSvilTmp


   ' inizializzo un nuovo motore di sviluppo
   Set objSvil = GetMotoreSviluppoIntegrale
   ' leggo i numeri della combinazione base
   aNumBase = cComb.ArrayNum
   For k = 1 To cComb.Classe
      aRetCol(k) = aNumBase(k)
      aBUsati(aRetCol(k)) = True
   Next


   ' faccio in clclo che dura fino a quando la lunghetta non arriva a contenere la quantità
   ' di numeri voluta
   ' la lunghetta parte con i numeri della combinazione base
   ' i numeri vengono aggiunti sviluppandoli con combinazioni di classe <nSorte>
   ' al termine del ciclo do sia avrà la combinazione migliore da aggiungere
   ' alla lunghetta base
   ' il giro continua finche la lunghetta non raggiunge la quantita di numeri voluti
   nPos = cComb.Classe
   Do While nPos < nClasse
            ' calcolo  la classe per sviluppare le combinazioni da testare insieme ai numeri gia presenti
            ' nella lunghetta
            ' se possibile la classe di sviluppo è pari a <nSorte> senno viene calcolata e assume un valore inferiore

            If nClasse - nPos >= nSorte Then
               nClasseSvilTmp = nSorte
            Else
               nClasseSvilTmp = nClasse - nPos
            End If
            ' predispongo la lunghetta per accogliere i numeri che otterremo dallo sviluppo
            ReDim Preserve aRetCol(nPos + nClasseSvilTmp)

            ' individuo i numeri da sviluppare i quali devono avere la c aratteristica sia di essere usciti
            ' nelle estrazioni coinvolte dal range sia di non essere gia presenti nella lunghetta stessa

            ReDim aNumDaSvil(90)
            nQtNumDaSvil = 0
            For n = 1 To 90
               If Not(aBUsati(n)) Then
                  If abNumValidi(n) Then
                     nQtNumDaSvil = nQtNumDaSvil + 1
                     aNumDaSvil(nQtNumDaSvil) = n
                  End If
               End If
            Next
            ReDim Preserve aNumDaSvil(nQtNumDaSvil)
            ' inizio a sviluppare le combinazioni da testare insieme ai numeri della lunghetta
            ReDim aCol(nClasseSvilTmp)
            bFound = False
            Call objSvil.InitSviluppoIntegrale(aNumDaSvil,nClasseSvilTmp)
            Do While objSvil.GetCombSviluppo(aCol)
               ' nelle opportune posizioni dell'array della lunghetta pongo i numeri della combinazione sviluppata
               For k = 1 To nClasseSvilTmp
                  aRetCol(nPos + k) = aCol(k)
               Next
               ' calcolo le presenze della lunghetta
               nPresTmp = Presenze(aRetCol,Inizio,Fine,aRuote,nSorte)
               ' se le presenze calcolate sono >= a quelle gia inidviduate allora
               ' devo tenere traccia della combinazione da prendere per inserirla
               ' nella lunghetta all'uscita  del ciclo
               If nPresTmp >= nPresMax Then
                  aColDaPrendere = aCol
                  nPresMax = nPresTmp
                  bFound = True
               End If
            Loop

            ' se ho trovato una combinazione da poter inserire nella lunghetta
            ' procedo ad inserirla e tengo traccia della nuova dimensione (quantita dei numeri)
            ' della lunghetta
            ' se non ho trovato niente è inutile continuare esce
            If bFound Then

               For k = 1 To nClasseSvilTmp
                     aRetCol(nPos + k) = aColDaPrendere(k)
                     aBUsati(aColDaPrendere(k)) = True

               Next
               nPos = nPos + nClasseSvilTmp
            Else
               Exit Do
            End If





   Loop

   ' se la lunghetta ha raggiunto la dimesnione prevista la funzione torna true
   If nPos = nClasse Then


      GetLung = True
   Else
      GetLung = False
   End If

End Function
Sub AlimentaNumValidi(aCol,Inizio,Fine,aRuote,abNumValidi)
   ' funzione usata per test non nello script
   ReDim abNumValidi(90)
   ReDim aNumRuota(5)
   Dim idEstr,e,r

   For idEstr = Inizio To Fine
      For r = 1 To UBound(aRuote)
         Call GetArrayNumeriRuota(idEstr,aRuote(r),aNumRuota)
         If PuntiSuArray(aNumRuota,aCol) > 1 Then
            For e = 1 To 5
               abNumValidi(aNumRuota(e)) = True
            Next
         End If
      Next
   Next
End Sub
Function Presenze(aColDaSvilTmp,Inizio,Fine,aRuote,Sorte)
 ' calcola le presenze di una lunghetta
   Dim k,r,e,nPunti,aNumRuota,nPresenze
   Dim aB
   nPresenze = 0
   aB = ArrayNumeriToBool(aColDaSvilTmp)
   For k = Inizio To Fine
      For r = 1 To UBound(aRuote)
            Call GetArrayNumeriRuota(k,aRuote(r),aNumRuota)

            nPunti = 0
            For e = 1 To 5
               If aB(aNumRuota(e)) Then
                  nPunti = nPunti + 1
               End If
            Next
            If nPunti >= Sorte Then
               nPresenze = nPresenze + 1
            End If
      Next
   Next

   Presenze = nPresenze

End Function
 
L

LuigiB

Guest
per fare una sola ruota sul mio pc ci mette un minuto e 15 secondi .. su tutte e 10 le ruote ovviamente è molto piu lento e ci vorrebbe la versione compilata perche la funzione che calcola le presenze (pesante) è presente direttamente nello script , non esiste una versione di questa funzione nello spazioscript e tanto meno ne esiste uan turbo ...strano che nessuno mi abbia mai suggerito di inserirla ...
Ad ogni modo nello script appena disegna la prima tacca della progressbar possiamo anche premere stop la lunghetta migliore è gia stata individuata con ottime probvabilità.

questa la lista delel combinazioni migliori sulle 10 ruote ...all'ultima estrazione del 2/ott
ora vedo se posso ottimizzare qualcosa nello script .. cosi su 10 ruote è troppo lento ..
Lunghetta Frequenza Presenza
15.20.22.59.61.74.77 30 28
04.13.19.51.57.77.84 32 28
23.36.40.52.57.74.77 28 28
17.21.51.56.57.64.77 30 28
21.51.56.57.63.64.77 30 28
21.42.51.56.57.62.77 32 28
47.51.55.57.59.70.77 36 28
10.42.47.57.59.70.77 35 27
10.15.42.47.52.57.85 29 27
47.51.56.57.59.77.87 37 27
10.42.52.59.65.77.85 29 27
17.47.51.55.57.70.77 31 27
21.51.56.57.59.65.77 36 27
05.31.42.57.59.77.87 33 27
15.17.20.22.59.74.77 31 27
15.21.22.23.31.64.74 27 27
19.42.51.56.57.63.77 31 27
05.19.20.42.59.77.80 27 27
15.22.59.61.74.77.86 29 27
04.05.14.15.41.47.57 27 27
15.20.22.59.69.74.77 29 27
10.42.51.56.57.59.77 37 27
04.05.15.19.59.74.77 35 27
05.06.31.42.59.77.87 29 27
05.23.57.59.77.79.87 35 27
05.47.57.59.77.79.87 33 27
19.47.51.57.74.77.84 31 27
04.19.23.51.56.57.77 33 27
27.47.51.55.57.59.77 35 27
04.42.52.57.62.74.77 31 27
42.47.51.56.57.70.77 35 27
47.51.56.57.63.74.77 33 27
04.19.47.51.57.77.84 35 27
11.21.42.51.56.57.77 33 27
04.15.22.59.61.74.77 37 27
10.15.42.51.52.59.77 31 27
05.19.42.57.59.77.87 35 27
14.36.51.55.57.59.77 35 27
05.06.21.42.57.59.77 33 27
04.06.15.31.59.64.74 29 27
15.21.22.31.63.64.74 29 27
47.51.56.57.59.70.77 35 27
51.55.56.57.59.70.77 35 27
10.47.51.56.57.59.77 35 27
14.36.51.57.62.77.84 29 27
04.15.16.59.61.74.77 33 27
31.42.51.56.57.62.77 31 27
01.14.36.52.57.59.77 32 26
51.56.57.60.63.73.77 26 26
10.40.51.56.57.59.77 32 26
17.51.55.57.59.70.77 36 26
14.36.51.57.68.77.84 30 26
10.42.59.65.70.77.85 28 26
19.47.51.57.59.77.84 36 26
10.23.30.42.59.65.77 30 26
03.05.57.59.77.79.87 30 26
04.51.56.57.66.74.77 32 26
10.15.42.51.59.67.77 30 26
12.51.55.57.59.69.77 32 26
05.57.59.72.77.79.87 33 26
02.05.20.23.44.59.77 30 26
04.31.32.42.47.57.74 30 26
24.51.56.57.59.61.77 32 26
12.51.55.56.57.59.77 36 26
14.47.51.57.62.77.84 30 26
20.40.44.52.57.59.77 30 26
51.56.57.59.65.66.77 35 26
15.20.32.40.57.59.77 32 26
08.24.51.55.57.59.77 32 26
15.21.22.39.63.64.74 26 26
05.13.20.42.59.77.84 26 26
15.18.20.59.61.71.77 28 26
15.22.41.47.52.57.85 28 26
15.20.22.44.59.74.77 30 26
01.15.42.51.59.67.77 30 26
09.13.23.48.64.73.90 26 26
21.51.53.56.57.62.77 26 26
10.42.51.59.70.77.85 30 26
05.20.42.59.73.77.90 28 26
42.46.51.56.57.59.77 36 26
20.40.42.44.47.59.77 26 26
08.51.55.57.59.70.77 32 26
05.43.47.57.59.77.87 32 26
37.51.55.57.59.60.77 32 26
51.56.57.59.77.79.87 36 26
01.15.36.51.59.71.77 30 26
23.51.56.57.63.70.77 28 26
32.51.56.57.63.74.77 30 26
08.51.55.57.59.61.77 32 26
01.03.51.57.59.68.77 35 26
15.22.41.47.57.71.85 29 25
05.13.19.20.59.77.88 29 25
01.20.59.61.67.77.84 25 25
22.44.47.60.62.65.85 25 25
06.31.42.59.61.64.77 29 25
05.16.20.42.59.77.80 25 25
11.13.21.42.47.57.65 27 25
01.05.23.59.61.77.80 31 25
20.44.55.57.59.70.77 29 25
15.21.22.25.63.74.84 25 25
47.51.56.57.59.77.81 35 25
15.26.42.51.59.61.77 27 25
14.55.57.59.74.77.86 33 25
05.20.59.61.69.77.80 29 25
40.51.56.57.59.77.79 33 25
37.40.51.55.57.59.77 31 25
04.05.07.59.77.84.87 33 25
15.20.34.40.44.59.77 27 25
29.37.51.57.59.60.77 31 25
47.49.51.55.57.59.77 35 25
01.32.51.57.59.65.77 34 25
01.08.51.57.59.61.77 33 25
21.37.51.57.60.64.77 29 25
18.20.24.44.57.59.77 29 25
05.57.59.61.77.79.87 31 25
22.41.46.52.65.71.85 25 25
04.15.43.59.61.74.77 33 25
16.51.56.57.59.66.77 31 25
07.10.42.51.59.62.77 33 25
04.15.21.23.42.57.64 29 25
01.18.20.44.59.61.77 27 25
05.20.59.61.66.69.77 27 25
01.15.46.52.56.59.77 27 25
05.20.44.57.59.77.81 31 25
42.47.57.68.72.79.85 27 25
10.42.47.59.64.70.77 27 25
21.25.51.56.57.59.77 33 25
22.46.52.60.65.71.85 27 25
10.23.30.42.51.59.77 31 25
10.15.22.63.74.85.88 27 25
12.51.55.57.58.59.77 31 25
15.22.23.52.71.74.85 32 25
 
Ultima modifica di un moderatore:

fillotto

Advanced Member >PLATINUM<
per cambiare la ruota bisogna x forza andarla a cambiare nel corpo dello script oppure si può mettere un inputbox ?
 
L

LuigiB

Guest
con un'ottimizzazione che ho fatto sulla funzione che calcola le presenze per una sola ruota ora invece che un minuto e quindici ci mette trenta secondi ...

ecco il nuovo script ..
Codice:
Option Explicit
Class clsCombinazione
   Private aNum
   Private aBNum
   Private mFrequenze
   Private mPresenze
   Private mClasse
   Private mKey
   Private aIdEstr
   Private nTrov

   Private Sub Class_Initialize()
       mFrequenze = 0
       mPresenze = 0
       ReDim aBnum(90)
   End Sub

   Public Property Get Classe
      Classe = mClasse
   End Property
   Public Property Let Classe(v)
      mClasse = v
   End Property
   Public Property Get ArrayNum
      ArrayNum = aNum
   End Property
   Public Property Get Key
      Key = mKey
   End Property
   Public Property Let Key(v)
      mKey = v
   End Property
   Public Property Get Presenze
      Presenze = mPresenze
   End Property
   Public Property Get Frequenze
      Frequenze = mFrequenze
   End Property

   Public Property Get Combinazione
      Combinazione = StringaNumeri(aNum,,True)
   End Property
   Sub IncrementaFrequenze
      mFrequenze = mFrequenze + 1
   End Sub

   Sub SetNumeri(aNumTmp)
      Dim k
      aNum = aNumTmp
      For k = 1 To UBound(aNum)
         aBNum(aNum(k)) = True
      Next
   End Sub
   Sub CalcolaFrequenza(aRuote,nSorte,nIni,nFin)
      mFrequenze = SerieFreqTurbo(nIni,nFin,aNum,aRuote,nSorte)

   End Sub
   Sub CalcolaPresenze(aRuote,nSorte,Inizio,Fine)

      Dim k,r,e,nPunti,aNumRuota,nPresenze
      Dim aB
      nPresenze = 0

      For k = Inizio To Fine
         For r = 1 To UBound(aRuote)
               Call GetArrayNumeriRuota(k,aRuote(r),aNumRuota)

               nPunti = 0
               For e = 1 To 5
                  If aBNum(aNumRuota(e)) Then
                     nPunti = nPunti + 1
                  End If
               Next
               If nPunti >= nSorte Then
                  nPresenze = nPresenze + 1
               End If
         Next
      Next

      mPresenze = nPresenze

   End Sub

   Sub AddIdEstr(v)
      nTrov = nTrov + 1
      ReDim Preserve aIdEstr(nTrov)
      aIdEstr(nTrov) = v

   End Sub
End Class

Private aEstrattiBool  

Sub Main
   Dim nEstrDaUSare,nClasse,nSorte,CollLunghette,nIni,nFin, k

   nEstrDaUSare = 18
   nClasse = 7
   nSorte = 2
  ' ReDim aRuote(10)
'   For k = 1 To 10
'      aRuote (k) = k
'   Next
   ReDim aRuote(1)
   aRuote(1) = FI_


   nIni =(EstrazioneFin - nEstrDaUSare) + 1
   nFin = EstrazioneFin
   Set CollLunghette = GetCollLunghettaMigliori(nIni,nFin,nClasse,nSorte,aRuote,nEstrDaUSare)
   Call AlimentaTabOutput(CollLunghette,aRuote,nClasse,nSorte)
   MsgBox TempoTrascorso


End Sub
Sub AlimentaTabOutput(CollLunghette,aRuote,nClasse,nSorte)
   Dim av,cLung

   Scrivi "Ruote  : " & StringaRuote(aRuote)
   Scrivi "Classe : " & nClasse
   Scrivi "Sorte  : " & nSorte


   av = Array("","Lunghetta","Frequenza","Presenza")
   Call InitTabella(av)

   For Each cLung In CollLunghette
      av(1) = cLung.Combinazione
      av(2) = cLung.Frequenze
      av(3) = cLung.Presenze
      Call AddRigaTabella(av)
   Next
   Call CreaTabella

End Sub
Function GetCollLunghettaMigliori(Inizio,Fine,nClasse,nSorte,aRuote ,nEstrUsate)

   Dim CollComb,cComb
   Dim CollLung,cLung
   Dim k,j,e
   Dim nFatte,nDaFare
   Dim nRetFrequenze

   Dim sKey
   ReDim aCol(nSorte)
   ReDim abNumValidi(90)
   ReDim aEstrattiBool (nEstrUsate ,   12 ,  90)
   Call AlimentaArrayEstrattiBool( aEstrattiBool  , Inizio , Fine , aRuote )

   Set CollComb = GetNewCollection
   Set CollLung = GetNewCollection

   ' alimento una collection con tutte le combinazioni di classe <nSorte> che si
   ' formano con le cinquine comprese nel range interessato
   ' di ogni singola combinazione si calcolano le frequenze
   For k = Inizio To Fine
      For j = 1 To UBound(aRuote)
         ReDim aNum(0)
         Call GetArrayNumeriRuota(k,aRuote(j),aNum)
         For e = 1 To 5
            abNumValidi(aNum(e)) = True
         Next
         Call OrdinaMatrice(aNum,1)

         Call InitSviluppoIntegrale(aNum,nSorte)
         Do While GetCombSviluppo(aCol)
            sKey = "k" & StringaNumeri(aCol,,True)
            If GetItemCollection(CollComb,sKey,cComb) Then
               cComb.IncrementaFrequenze
            Else
               Set cComb = New clsCombinazione
               cComb.Classe = nSorte
               cComb.SetNumeri(aCol)
               cComb.key = sKey
               cComb.IncrementaFrequenze
               Call AddItemColl(CollComb,cComb,sKey)
            End If
         Loop

      Next
      Call AvanzamentoElab(Inizio,Fine,k)
   Next
   Call AvanzamentoElab(Inizio,Fine,Inizio)

   ' ordino la collection contenente tutte le combinazioni di classe <nSorte> per il valore frequenza
   Call OrdinaItemCollection(CollComb,"Frequenze","Key")

   ' da ognuna delle combinazioni base scasturirà una lunghetta quindi ciclo su tutte
   ' le combinazioni base presenti nella collection e per ciascuna costruirò una lunghetta
   nDaFare = CollComb.count
   nFatte = 0
   For Each cComb In CollComb


      ReDim aRetCol(nClasse)
      ' ottiene la lunghetta "migliore" che contiene la combinazione base
      If GetLung(cComb ,aRetCol,nRetFrequenze,CollComb,Inizio,Fine,aRuote,nSorte,nClasse,abNumValidi ,nEstrUsate ) Then

          ' aggiungo la lunghetta trovata in una nuova collection
          Set cLung = New clsCombinazione
          cLung.Classe = nClasse
          Call OrdinaMatrice(aRetCol,1)
          cLung.SetNumeri(aRetCol)
          sKey = "k" & StringaNumeri(aRetCol,,True)
          Call cLung.CalcolaFrequenza(aRuote,nSorte,Inizio,Fine)
          Call cLung.CalcolaPresenze(aRuote,nSorte,Inizio,Fine)


          Call AddItemInColl(cLung,sKey,CollLung)


      End If

      nFatte = nFatte + 1
      If nFatte Mod 10 = 0 Then
         Call AvanzamentoElab(1,nDaFare,nFatte)
         If ScriptInterrotto Then Exit For
         DoEventsEx
      End If
   Next

   ' ordino la collection delle lunghette trovate per poi mostrarle in output
   Call OrdinaItemCollection(CollLung,"Presenze")
   Set GetCollLunghettaMigliori = CollLung


End Function
Sub  AlimentaArrayEstrattiBool( aEstrattiBool  , Inizio , Fine , aRuote )
   Dim idEstr , i , r , e  
   ReDim aNum(5)
   For idEstr = Inizio To Fine
      i = i +1
      For r = 1 To UBound (aRuote)
         Call GetArrayNumeriRuota ( idEstr , aRuote(r) , aNum )
         For e = 1 To 5
            aEstrattiBool(i , aRuote(r) , aNum (e)) = True
         Next
      Next
   Next

End Sub
Sub AddItemInColl(cItem,sKey,Coll)
   On Error Resume Next

   Coll.Add cItem,sKey
   If Err <> 0 Then Err.Clear
End Sub
Function GetLung(cComb,aRetCol,nRetPres,collComb,Inizio,Fine,aRuote,nSorte,nClasse,abNumValidi , nQtEstrUsate)

   ' a partire dalla combinazione base costruisce la lunghetta migliore (piu prolifica per presenze)

   Dim nPos,n,nPresMax,nNum,nPresTmp,k,aNumBase
   Dim aNumDaSvil,nQtNumDaSvil,aColDaPrendere,bFound
   ReDim aBUsati(90)

   Dim objSvil
   Dim sKey
   Dim cCombTmp
   Dim nClasseSvilTmp


   ' inizializzo un nuovo motore di sviluppo
   Set objSvil = GetMotoreSviluppoIntegrale
   ' leggo i numeri della combinazione base
   aNumBase = cComb.ArrayNum
   For k = 1 To cComb.Classe
      aRetCol(k) = aNumBase(k)
      aBUsati(aRetCol(k)) = True
   Next


   ' faccio in clclo che dura fino a quando la lunghetta non arriva a contenere la quantità
   ' di numeri voluta
   ' la lunghetta parte con i numeri della combinazione base
   ' i numeri vengono aggiunti sviluppandoli con combinazioni di classe <nSorte>
   ' al termine del ciclo do sia avrà la combinazione migliore da aggiungere
   ' alla lunghetta base
   ' il giro continua finche la lunghetta non raggiunge la quantita di numeri voluti
   nPos = cComb.Classe
   Do While nPos < nClasse
            ' calcolo  la classe per sviluppare le combinazioni da testare insieme ai numeri gia presenti
            ' nella lunghetta
            ' se possibile la classe di sviluppo è pari a <nSorte> senno viene calcolata e assume un valore inferiore

            If nClasse - nPos >= nSorte Then
               nClasseSvilTmp = nSorte
            Else
               nClasseSvilTmp = nClasse - nPos
            End If
            ' predispongo la lunghetta per accogliere i numeri che otterremo dallo sviluppo
            ReDim Preserve aRetCol(nPos + nClasseSvilTmp)

            ' individuo i numeri da sviluppare i quali devono avere la c aratteristica sia di essere usciti
            ' nelle estrazioni coinvolte dal range sia di non essere gia presenti nella lunghetta stessa

            ReDim aNumDaSvil(90)
            nQtNumDaSvil = 0
            For n = 1 To 90
               If Not(aBUsati(n)) Then
                  If abNumValidi(n) Then
                     nQtNumDaSvil = nQtNumDaSvil + 1
                     aNumDaSvil(nQtNumDaSvil) = n
                  End If
               End If
            Next
            ReDim Preserve aNumDaSvil(nQtNumDaSvil)
            ' inizio a sviluppare le combinazioni da testare insieme ai numeri della lunghetta
            ReDim aCol(nClasseSvilTmp)
            bFound = False
            Call objSvil.InitSviluppoIntegrale(aNumDaSvil,nClasseSvilTmp)
            Do While objSvil.GetCombSviluppo(aCol)
               ' nelle opportune posizioni dell'array della lunghetta pongo i numeri della combinazione sviluppata
               For k = 1 To nClasseSvilTmp
                  aRetCol(nPos + k) = aCol(k)
               Next
               ' calcolo le presenze della lunghetta
               nPresTmp = Presenze(aRetCol, nQtEstrUsate, UBound(aRetCol)  ,aRuote,nSorte)
               ' se le presenze calcolate sono >= a quelle gia inidviduate allora
               ' devo tenere traccia della combinazione da prendere per inserirla
               ' nella lunghetta all'uscita  del ciclo
               If nPresTmp >= nPresMax Then
                  aColDaPrendere = aCol
                  nPresMax = nPresTmp
                  bFound = True
               End If
            Loop

            ' se ho trovato una combinazione da poter inserire nella lunghetta
            ' procedo ad inserirla e tengo traccia della nuova dimensione (quantita dei numeri)
            ' della lunghetta
            ' se non ho trovato niente è inutile continuare esce
            If bFound Then

               For k = 1 To nClasseSvilTmp
                     aRetCol(nPos + k) = aColDaPrendere(k)
                     aBUsati(aColDaPrendere(k)) = True

               Next
               nPos = nPos + nClasseSvilTmp
            Else
               Exit Do
            End If





   Loop

   ' se la lunghetta ha raggiunto la dimesnione prevista la funzione torna true
   If nPos = nClasse Then


      GetLung = True
   Else
      GetLung = False
   End If

End Function
Sub AlimentaNumValidi(aCol,Inizio,Fine,aRuote,abNumValidi)
   ' funzione usata per test non nello script
   ReDim abNumValidi(90)
   ReDim aNumRuota(5)
   Dim idEstr,e,r

   For idEstr = Inizio To Fine
      For r = 1 To UBound(aRuote)
         Call GetArrayNumeriRuota(idEstr,aRuote(r),aNumRuota)
         If PuntiSuArray(aNumRuota,aCol) > 1 Then
            For e = 1 To 5
               abNumValidi(aNumRuota(e)) = True
            Next
         End If
      Next
   Next
End Sub
Function Presenze(aColDaSvilTmp,nQtEstrUsate, nClasseLunghetta,aRuote,Sorte)
 ' calcola le presenze di una lunghetta
   Dim k,r,e,nPunti,aNumRuota,nPresenze
  ' Dim aB
   nPresenze = 0
  ' aB = ArrayNumeriToBool(aColDaSvilTmp)
   For k = 1  To nQtEstrUsate
      For r = 1 To UBound(aRuote)
   '         Call GetArrayNumeriRuota(k,aRuote(r),aNumRuota)

            nPunti = 0
            For e = 1 To nClasseLunghetta
               If aEstrattiBool (k, aRuote(r),aColDaSvilTmp(e) ) Then
                  nPunti = nPunti + 1
               End If
            Next
            If nPunti >= Sorte Then
               nPresenze = nPresenze + 1
            End If
      Next
   Next

   Presenze = nPresenze

End Function
 

Nikor

Premium Member
Ciao Mitico…… intanto Grazie di cuore per il tempo che ci dedichi e per tutto il materiale che ci metti in condivisione!

Non ho ancora provato i listati, ma vedo che a tutte ci sono 28 presenze … allora non mi ero ancora del tutto rincoglio………. Quando escludendo l’ultima estrazione scrivevo che 28 mi sembravano poche e rifiltrando con le funzioni del tuo Super Software avevo estrapolato queste al topic # ..29 !

29--.jpg

Si potrebbe dedurre che a tutte le ruote 28,29 e 30 presenze in un ciclo di 18 estrazioni siano già un fatto di per sé interessante……

Poi come vedi i bastian contrari nei miei confronti non si smentiscono mai….. e risponderò più tardi a questo problema….adesso vado a mangiare la pappa.

Nikor.
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 04 maggio 2024
    Bari
    02
    31
    81
    52
    21
    Cagliari
    39
    88
    84
    01
    67
    Firenze
    36
    30
    70
    06
    41
    Genova
    59
    23
    61
    22
    27
    Milano
    05
    17
    69
    57
    39
    Napoli
    81
    62
    82
    43
    50
    Palermo
    73
    55
    62
    45
    18
    Roma
    76
    70
    01
    64
    15
    Torino
    82
    55
    35
    70
    46
    Venezia
    58
    23
    61
    29
    21
    Nazionale
    10
    14
    01
    43
    09
    Estrazione Simbolotto
    Milano
    30
    01
    05
    32
    11

Ultimi Messaggi

Alto