SuperEnalotto
Gentili Signori,
sono nuovo del forum e pertanto mi presento.
Il mio nome è Stefano, sono un programmatore e ho una piccola azienda di informatica.
Spero di poter trovare qui la risposta al mio quesito.
La domanda, come da oggetto, riguarda il SuperEnalotto.
Le combinazioni del SuperEnalotto sono composte da 6 numeri che vanno da 1 a 90.
La prima è 1,2,3,4,5,6 e l'ultima 85,86,87,88,89,90.
E' noto che sono in tutto 622.614.630 di combinazioni.
Ora premettendo che tolte addizioni, sottrazioni, moltiplicazioni, divisioni, proporzioni, e
radici quadrate per me tutto il resto è materia uscura.
Ho fatto già una faticata a scoprire che per ottenere il numero di combinazioni possibili svilappate da 6 numeri
che possono andare da 1 a 90 senza ripetizioni esistono i fattoriali e la formula,
per me magica, è 90*89*87*86*85*84/6*5*4*3*2*1=622.614.630
Talemente mi sembrava magica che per venirne a capo con i miei mezzi ho fatto quanto segue:
For A = 1 To 85
For B = A + 1 To 86
For C = B + 1 To 87
For D = C + 1 To 88
For E = D + 1 To 89
For F = E + 1 To 90
K = K + 1
DoEvents
Next F, E, D, C, B, A
Debug.Print K
Ci mette un po' ma alla fine mi da il risultato corretto 622.614.630
Adesso ipotizzando di voler memorizzare tutte le combinazioni su un file per sapere esattaemente il numero della
combinazione K al variare di A,B,C,D,E,F... vi dico lasciate perdere...
Io sono arrivato qui, ma poi mi sono scoraggiato, e ho spento tutto...
Progressivo=5.321.387
Estratto1=1
Estratto2=4
Estratto3=13
Estratto4=55
Estratto5=74
Estratto6=77
Scusate se l'ho fatta così lunga, ma era per far capire bene cosa mi serve...
Dati per esempio i numeri sopra 1,4,13,55,74,77 come faccio con una formula matematica (facile, facile, facile)
a capire che stiamo parlando della combinazione numero 5.321.387 ?
Grazie a tutti per la collaborazione
Ciao a presto
Stefano
sono nuovo del forum e pertanto mi presento.
Il mio nome è Stefano, sono un programmatore e ho una piccola azienda di informatica.
Spero di poter trovare qui la risposta al mio quesito.
La domanda, come da oggetto, riguarda il SuperEnalotto.
Le combinazioni del SuperEnalotto sono composte da 6 numeri che vanno da 1 a 90.
La prima è 1,2,3,4,5,6 e l'ultima 85,86,87,88,89,90.
E' noto che sono in tutto 622.614.630 di combinazioni.
Ora premettendo che tolte addizioni, sottrazioni, moltiplicazioni, divisioni, proporzioni, e
radici quadrate per me tutto il resto è materia uscura.
Ho fatto già una faticata a scoprire che per ottenere il numero di combinazioni possibili svilappate da 6 numeri
che possono andare da 1 a 90 senza ripetizioni esistono i fattoriali e la formula,
per me magica, è 90*89*87*86*85*84/6*5*4*3*2*1=622.614.630
Talemente mi sembrava magica che per venirne a capo con i miei mezzi ho fatto quanto segue:
For A = 1 To 85
For B = A + 1 To 86
For C = B + 1 To 87
For D = C + 1 To 88
For E = D + 1 To 89
For F = E + 1 To 90
K = K + 1
DoEvents
Next F, E, D, C, B, A
Debug.Print K
Ci mette un po' ma alla fine mi da il risultato corretto 622.614.630
Adesso ipotizzando di voler memorizzare tutte le combinazioni su un file per sapere esattaemente il numero della
combinazione K al variare di A,B,C,D,E,F... vi dico lasciate perdere...
Io sono arrivato qui, ma poi mi sono scoraggiato, e ho spento tutto...
Progressivo=5.321.387
Estratto1=1
Estratto2=4
Estratto3=13
Estratto4=55
Estratto5=74
Estratto6=77
Scusate se l'ho fatta così lunga, ma era per far capire bene cosa mi serve...
Dati per esempio i numeri sopra 1,4,13,55,74,77 come faccio con una formula matematica (facile, facile, facile)
a capire che stiamo parlando della combinazione numero 5.321.387 ?
Grazie a tutti per la collaborazione
Ciao a presto
Stefano
Risposte
Da qualche parte avevamo affrontato qualcosa di simile ... se lo ritrovo, posto il link ... 
EDIT: Eccolo qui! ... sei la pazienza di leggerlo ...

EDIT: Eccolo qui! ... sei la pazienza di leggerlo ...

Ciao,
innanzitutto grazie a axpgn per la pronta risposta...
Ho avuto la pazienza di leggere... ma ho paura che non sia la soluzione per me...
Le formule indicate nel post suggerito mi permetto di risalire ai numeri estratti es. 1,4,13,55,74,77 dato il numero della combinazione 5.321.387
Io ho la necessità inversa ovvero dati i numeri estratti 1,4,13,55,74,77 risalire al numero di combinazione 5.321.387
Il mio sistema attuale (nel post precedente) ci mette circa 5 minuti ad elaborare tutte le 622.614.630 di combinazioni.
Se lo faccio girare alla ricerca di 1,2,3,4,5 ci mette un attimo a dirmi che si tratta della combinazione numero 1
Se invece cerco gli estratti 85,86,87,88,89,90 ci mette tutti e 5 i minuti per dirmi che si tratta della combinazione 622.614.630
In pratica più sono alti i numeri estratti più ci mette a dirmi il numero della combinazione...
Volendo analizzare lo storico delle estrazioni perderei un sacco di tempo solo a trovare i numeri delle combinazioni che mi interessano...
Spero in un altro suggerimento...
Grazie
Ciao
Stefano
innanzitutto grazie a axpgn per la pronta risposta...
Ho avuto la pazienza di leggere... ma ho paura che non sia la soluzione per me...
Le formule indicate nel post suggerito mi permetto di risalire ai numeri estratti es. 1,4,13,55,74,77 dato il numero della combinazione 5.321.387
Io ho la necessità inversa ovvero dati i numeri estratti 1,4,13,55,74,77 risalire al numero di combinazione 5.321.387
Il mio sistema attuale (nel post precedente) ci mette circa 5 minuti ad elaborare tutte le 622.614.630 di combinazioni.
Se lo faccio girare alla ricerca di 1,2,3,4,5 ci mette un attimo a dirmi che si tratta della combinazione numero 1
Se invece cerco gli estratti 85,86,87,88,89,90 ci mette tutti e 5 i minuti per dirmi che si tratta della combinazione 622.614.630
In pratica più sono alti i numeri estratti più ci mette a dirmi il numero della combinazione...
Volendo analizzare lo storico delle estrazioni perderei un sacco di tempo solo a trovare i numeri delle combinazioni che mi interessano...
Spero in un altro suggerimento...
Grazie
Ciao
Stefano
Se ho capito bene tu vuoi passare da una sestina ad un numero decimale che faccia da codice; premesso che quello che é scritto in quel thread contiene, almeno implicitamente, la procedura per fare quello che ti serve, ci vuole un minuto per realizzarla e un secondo di elaborazione ...
Come dicevo di là, ogni sestina può essere vista come un numero in base $90$, e così come converti un binario in decimale, lo stesso fai qui ...
Esempio:
Data la sestina $12, 23, 34, 56, 78, 90$, per prima cosa si diminuiscono di uno tutti i numeri (ovvero la sestina diventa $11, 22, 33, 55, 77, 89$), poi moltiplichi ogni "cifra" così ottenuta per il "peso" dovuto alla posizione e cioè $11*90^5+22*90^4+33*90^3+55*90^2+77*90^1+89*90^0$ che fa $66.421.829.519$ (se non ho sbagliato i conti ...
)
Cordialmente, Alex
Come dicevo di là, ogni sestina può essere vista come un numero in base $90$, e così come converti un binario in decimale, lo stesso fai qui ...
Esempio:
Data la sestina $12, 23, 34, 56, 78, 90$, per prima cosa si diminuiscono di uno tutti i numeri (ovvero la sestina diventa $11, 22, 33, 55, 77, 89$), poi moltiplichi ogni "cifra" così ottenuta per il "peso" dovuto alla posizione e cioè $11*90^5+22*90^4+33*90^3+55*90^2+77*90^1+89*90^0$ che fa $66.421.829.519$ (se non ho sbagliato i conti ...

Cordialmente, Alex
Alex: mi sa che hai un po' deragliato....
Come può venirti quel numerone, se le sestine possibili sono $622.614.630$????
Come può venirti quel numerone, se le sestine possibili sono $622.614.630$????
Esattamente voglio "passare da una sestina ad un numero decimale che faccia da codice"...
Però con i 90 elevati a potenza 0,1,2,3,4,5 escono delle bestie di numeri
Però con i 90 elevati a potenza 0,1,2,3,4,5 escono delle bestie di numeri



@Superpippone
Ma sei fissato con le combinazioni ...
Se rileggi la prima frase che ho scritto, ho fornito un metodo (facile da costruire e veloce da eseguire) per collegare una sestina ad un codice numerico decimale (univoco), che mi pare sia lo scopo del richiedente ...
Se lo scopo è un altro ... ne riparliamo ...
Peraltro se lo scopo è quello che io ho inteso, non capisco perché non usare direttamente le sestine ...
Ma sei fissato con le combinazioni ...
Se rileggi la prima frase che ho scritto, ho fornito un metodo (facile da costruire e veloce da eseguire) per collegare una sestina ad un codice numerico decimale (univoco), che mi pare sia lo scopo del richiedente ...
Se lo scopo è un altro ... ne riparliamo ...

Peraltro se lo scopo è quello che io ho inteso, non capisco perché non usare direttamente le sestine ...

Alex:
Stephen vuole un metodo semplice per trovare che la sestina:1-4-13-55-74-77 è la numero $5.321.387$.
Non vedo come col tuo metodo possa riuscirci.
Se magari mi "illumini", te ne sarò eternamente grato...
Luciano
Stephen vuole un metodo semplice per trovare che la sestina:1-4-13-55-74-77 è la numero $5.321.387$.
Non vedo come col tuo metodo possa riuscirci.
Se magari mi "illumini", te ne sarò eternamente grato...
Luciano
"StephenSoftware":
... Però con i 90 elevati a potenza 0,1,2,3,4,5 escono delle bestie di numeri![]()
![]()
Va beh, ma che t'importa, mica li devi contare tu ...

È un "codice", in archivio non ci vanno tutti i numeri da $1$ a $90^6$ ma solo tanti quanti sono le sestine diverse nello storico (qualche migliaio al massimo, presumo ...)
Cordialmente, Alex
@Superpippone
No, come vedi, non vuole quello, ma solo un "codice" ...
No, come vedi, non vuole quello, ma solo un "codice" ...
"StephenSoftware":
Esattamente voglio "passare da una sestina ad un numero decimale che faccia da codice"...
Costa molto leggere il mio messaggio del link precedente di axpgn e scaricare il file excel indicato qui?
http://wheels.forumcommunity.net/?t=568 ... y404891747
@nino
Lo so, nino, ma gliel'ho avevo detto ...
Lo so, nino, ma gliel'ho avevo detto ...

Scusate tutti... l'ultima cosa che volevo era innescare una discussione...
In tutti i modi dice bene superpippone, a me serve il numero corrispondente della sestina...
La sestina che ho pubblicato 1-4-13-55-74-77 è il frutto dell'elaborazione che poi ho stoppato che si prefiggeva si creare un file con lo sviluppo integrale di tutte le 622.614.630 combinazioni.
Il numero 5.321.387 è il numero dei record che ha scritto il programma con giorni di elaborazioni e li ho capito che non era il caso.
Se fai il giro a mano dei 6 loop nidificati quando arrivi a 1-4-13-55-74-77 il programma ha prodotto 5.321.387 sestine.
Io voglio, anzi vorrei, data la sestina qualunque essa sia risalire al corrispndente numero da 1 a 622.614.630...
Grazie a tutti
Stefano
In tutti i modi dice bene superpippone, a me serve il numero corrispondente della sestina...
La sestina che ho pubblicato 1-4-13-55-74-77 è il frutto dell'elaborazione che poi ho stoppato che si prefiggeva si creare un file con lo sviluppo integrale di tutte le 622.614.630 combinazioni.
Il numero 5.321.387 è il numero dei record che ha scritto il programma con giorni di elaborazioni e li ho capito che non era il caso.
Se fai il giro a mano dei 6 loop nidificati quando arrivi a 1-4-13-55-74-77 il programma ha prodotto 5.321.387 sestine.
Io voglio, anzi vorrei, data la sestina qualunque essa sia risalire al corrispndente numero da 1 a 622.614.630...
Grazie a tutti
Stefano
Non costa nulla... prima di iscrivermi al forum ho cercato come un pazzo in giro per la rete...
Solo che questo link lo vedo solo adesso... nei post precedenti non c'era...
Da quello che c'è scritto dovrebbe fare al mio caso...
Controllo e vi aggiorno
Intanto grazie
Stefano
Costa molto leggere il mio messaggio del link precedente di axpgn e scaricare il file excel indicato qui?
http://wheels.forumcommunity.net/?t=568 ... y404891747[/quote]
Solo che questo link lo vedo solo adesso... nei post precedenti non c'era...
Da quello che c'è scritto dovrebbe fare al mio caso...
Controllo e vi aggiorno
Intanto grazie
Stefano
"nino_":
[quote="StephenSoftware"]Esattamente voglio "passare da una sestina ad un numero decimale che faccia da codice"...
Costa molto leggere il mio messaggio del link precedente di axpgn e scaricare il file excel indicato qui?
http://wheels.forumcommunity.net/?t=568 ... y404891747[/quote]
@Steph
Non ti preoccupare per le discussioni, qui ci si diverte anche ...
Quel link citato da nino, c'era nel thread che ti ho indicato ma capisco che in un centinaio di post si perda ...
Però per quanto il riguarda il succo del discorso dovresti decidere cosa ti serve, perché non puo andarti bene il mio metodo e contemporaneamente usare le combinazioni come dice superpippone ...
Se il tuo scopo è quello di costruirti uno storico delle sestine del SuperEnalotto usando come chiave del record un numero (decimale) facilmente ricavabile (sia come metodo che come tempo di elaborazione e ricerca) dalla sestina, allora il mio metodo va benissimo (così come usare la sestina stessa); se invece lo scopo è più articolato, allora facci sapere ... se ti va ...
Cordialmente, Alex
Non ti preoccupare per le discussioni, qui ci si diverte anche ...

Quel link citato da nino, c'era nel thread che ti ho indicato ma capisco che in un centinaio di post si perda ...

Però per quanto il riguarda il succo del discorso dovresti decidere cosa ti serve, perché non puo andarti bene il mio metodo e contemporaneamente usare le combinazioni come dice superpippone ...
Se il tuo scopo è quello di costruirti uno storico delle sestine del SuperEnalotto usando come chiave del record un numero (decimale) facilmente ricavabile (sia come metodo che come tempo di elaborazione e ricerca) dalla sestina, allora il mio metodo va benissimo (così come usare la sestina stessa); se invece lo scopo è più articolato, allora facci sapere ... se ti va ...

Cordialmente, Alex
Ciao a tutti,
eccomi di nuovo a voi...
Il file excel è stato una mano santa...
ho estratto la forumula utilizzata al suo interno per calcolare da sestina a indice e sono riuscito a replicarla in visual basic
poi visto che c'ero ho provato anche ed estrarre l'altra ma è un bagno di sangue... allora mi sono rifatto alla formula gentilmente indicata da axpgn nei primi post (Da funzione a sequenza) ma anche li mi sono incastrato...
Per default sull'esempio assume che ci sia il numero 1 nella prima posizione...
E se non c'è come continua il loop per capire che numero c'è in prima posizione?
Sempre dal primo esempio quando trova che nella prima posizione c'è 1 sa pure che ci sono rimaste 41.507.642 cinquine e
usa questo numero diaciamo come base di calcolo per trovare il secondo numero...
Fino a qui ce l'ho fatta a condizione del numero 1 in prima posizione il codice che ho scritto trova anche il secondo estratto...
Quando però passo alle quartine... se per le cinquine la base di calcolo era 41.507.642 per le quartine e poi i terni, ambi e l'ultimo numero quale sarà?
Ve lo avevo premesso che non ci capisco un caBEEEP!!!
Ciao e grazie
A presto
Stefano
eccomi di nuovo a voi...
Il file excel è stato una mano santa...
ho estratto la forumula utilizzata al suo interno per calcolare da sestina a indice e sono riuscito a replicarla in visual basic
poi visto che c'ero ho provato anche ed estrarre l'altra ma è un bagno di sangue... allora mi sono rifatto alla formula gentilmente indicata da axpgn nei primi post (Da funzione a sequenza) ma anche li mi sono incastrato...
Per default sull'esempio assume che ci sia il numero 1 nella prima posizione...
E se non c'è come continua il loop per capire che numero c'è in prima posizione?
Sempre dal primo esempio quando trova che nella prima posizione c'è 1 sa pure che ci sono rimaste 41.507.642 cinquine e
usa questo numero diaciamo come base di calcolo per trovare il secondo numero...
Fino a qui ce l'ho fatta a condizione del numero 1 in prima posizione il codice che ho scritto trova anche il secondo estratto...
Quando però passo alle quartine... se per le cinquine la base di calcolo era 41.507.642 per le quartine e poi i terni, ambi e l'ultimo numero quale sarà?
Ve lo avevo premesso che non ci capisco un caBEEEP!!!
Ciao e grazie
A presto
Stefano
Eh no, sono io che non ti capisco ...
Non capisco proprio quello che stai facendo e quindi non comprendo le difficoltà che hai ...
Mi permetto di ripetere un esempio di come trasformare una qualsiasi sestina in un numero decimale univoco che funga da codice (da chiave) per costruire un archivio ...
Dalle sestine ...
$1-23-41-57-63-90$
$2-5-11-28-43-55$
$12-23-41-57-77-78$
$21-34-37-76-81-87$
$32-43-62-67-82-85$
otteniamo ...
$0*90^5+22*90^4+40*90^3+56*90^2+62*90^1+89*90^0=1.473.039.269$
$1*90^5+4*90^4+10*90^3+27*90^2+42*90^1+54*90^0=6.174.852.534$
$11*90^5+22*90^4+40*90^3+56*90^2+76*90^1+77*90^0=66.426.940.517$
$20*90^5+33*90^4+36*90^3+75*90^2+80*90^1+86*90^0=120.289.988.786$
$31*90^5+42*90^4+61*90^3+66*90^2+81*90^1+84*90^0=185.852.530.974$
Ovviamente è indifferente se la sestina da cui parti proviene da un archivio storico o è generata da te (per esempio con l'algoritmo da te postato ...)
Cordialmente, Alex

Non capisco proprio quello che stai facendo e quindi non comprendo le difficoltà che hai ...

Mi permetto di ripetere un esempio di come trasformare una qualsiasi sestina in un numero decimale univoco che funga da codice (da chiave) per costruire un archivio ...
Dalle sestine ...
$1-23-41-57-63-90$
$2-5-11-28-43-55$
$12-23-41-57-77-78$
$21-34-37-76-81-87$
$32-43-62-67-82-85$
otteniamo ...
$0*90^5+22*90^4+40*90^3+56*90^2+62*90^1+89*90^0=1.473.039.269$
$1*90^5+4*90^4+10*90^3+27*90^2+42*90^1+54*90^0=6.174.852.534$
$11*90^5+22*90^4+40*90^3+56*90^2+76*90^1+77*90^0=66.426.940.517$
$20*90^5+33*90^4+36*90^3+75*90^2+80*90^1+86*90^0=120.289.988.786$
$31*90^5+42*90^4+61*90^3+66*90^2+81*90^1+84*90^0=185.852.530.974$
Ovviamente è indifferente se la sestina da cui parti proviene da un archivio storico o è generata da te (per esempio con l'algoritmo da te postato ...)
Cordialmente, Alex
La faccio più facile voglio fare quello che fa il foglio excel che ho trovato nel link che mi avete suggerito.
La prima parte l'ho fatta da sestina a numero decimale...
inserisco 1−23−41−57−63−90 e mi calcola 31.632.311
inserisco 2−5−11−28−43−55 e mi calcola 46.340.440
inserisco 12−23−41−57−77−78 e mi calcola 355.887.965
inserisco 21−34−37−76−81−87 e mi calcola 498.624.114
inserisco 32−43−62−67−82−85 e mi calcola 580.583.054
Adesso mi manca il contrario da numero decimale a sestina...
Nel foglio excel c'è la formula ma non sono stato in grado di estrarla e replicarla come per la prima parte, allora mi sono rifatto all'altro post (Da funzione a sequenza) dove è di più semplice comprensione ma ci sono dei punti che non mi sono chiari, scritti nel precedente post... ma che riporto di nuovo
1) Per default sull'esempio assume che ci sia il numero 1 nella prima posizione...
E se non c'è 1 come continua il loop per capire che numero c'è in prima posizione?
2) Sempre dal primo esempio quando trova che nella prima posizione c'è 1 sa pure che ci sono rimaste 41.507.642 cinquine e
usa questo numero diaciamo come base di calcolo per trovare il secondo numero...
Fino a qui ce l'ho fatta a condizione del numero 1 in prima posizione il codice che ho scritto trova anche il secondo
estratto...
Quando però passo alle quartine... se per le cinquine la base di calcolo era 41.507.642 per le quartine e poi i terni, ambi
e l 'ultimo numero quale sarà?
Se mi aiutate su queste due domande non vi disturbo più... anzi a programmino finito lo posto anche sul forum...
Ciao e grazie
A presto
Stefano
La prima parte l'ho fatta da sestina a numero decimale...
inserisco 1−23−41−57−63−90 e mi calcola 31.632.311
inserisco 2−5−11−28−43−55 e mi calcola 46.340.440
inserisco 12−23−41−57−77−78 e mi calcola 355.887.965
inserisco 21−34−37−76−81−87 e mi calcola 498.624.114
inserisco 32−43−62−67−82−85 e mi calcola 580.583.054
Adesso mi manca il contrario da numero decimale a sestina...
Nel foglio excel c'è la formula ma non sono stato in grado di estrarla e replicarla come per la prima parte, allora mi sono rifatto all'altro post (Da funzione a sequenza) dove è di più semplice comprensione ma ci sono dei punti che non mi sono chiari, scritti nel precedente post... ma che riporto di nuovo
1) Per default sull'esempio assume che ci sia il numero 1 nella prima posizione...
E se non c'è 1 come continua il loop per capire che numero c'è in prima posizione?
2) Sempre dal primo esempio quando trova che nella prima posizione c'è 1 sa pure che ci sono rimaste 41.507.642 cinquine e
usa questo numero diaciamo come base di calcolo per trovare il secondo numero...
Fino a qui ce l'ho fatta a condizione del numero 1 in prima posizione il codice che ho scritto trova anche il secondo
estratto...
Quando però passo alle quartine... se per le cinquine la base di calcolo era 41.507.642 per le quartine e poi i terni, ambi
e l 'ultimo numero quale sarà?
Se mi aiutate su queste due domande non vi disturbo più... anzi a programmino finito lo posto anche sul forum...
Ciao e grazie
A presto
Stefano
Potresti linkare i post ai quali ti riferisci?
Eccolo è il primo link che mi hai suggerito...
"axpgn":
Da qualche parte avevamo affrontato qualcosa di simile ... se lo ritrovo, posto il link ...
EDIT: Eccolo qui! ... sei la pazienza di leggerlo ...
Potresti essere più circonstanziato? quello è un thread intero, non un post ...
Per esempio qui

Per esempio qui
"StephenSoftware":a quale post ti riferisci?
... allora mi sono rifatto all'altro post (Da funzione a sequenza) dove è di più semplice comprensione ma ci sono dei punti che non mi sono chiari,