Da funzione a sequenza

H3st3r1na
Cari amici ho il seguente problema:
Nel superenaolotto con k=6 e n=90 si possono avere 622.614.630 sequenze.Supponiamo che gli n numeri siano ordinati tale che
1 2 3 4 4 6 corrisponda alla prima sequenza e
85 86 87 88 89 90 corrisponda alla sequenza 622.614.630
il problema che mi sono posto è il seguente:
posso risalire alla sequenza sapendo il numero di sequenza 1 \(\displaystyle \leq \) S \(\displaystyle \leq \) 622.614.630 con una funzione???

esempio f(S) = sequenza?

Vi ringrazio anticipatamente anticipatamente

Risposte
H3st3r1na
Alex,sicuramente il tuo metodo è più veloce ed efficace ma parte da presupposti diversi in quanto noi eravamo partiti da n compreso tra 1 e C(90;6) che è molto diverso da n compreso tra 1 e 90 elevato alla sesta. Per quanto riguarda il programmino lo sto facendo in php a breve vi segnalero' il link x le prove on line. Con la soluzione di Superpippone e poi perfezionata da Nino_ dato n si riesce a trovare la sequenza al massimo dopo 90 iterazioni con un costo computazionale quasi nullo. Il bello e che indipendentemente dalla lunghezza di L della sequenza il numero di iterazioni necessarie a risalire alla sequenza sarà al massimo uguale al numero degli elementi della sequenza. Esempio se k = 30 e n=200 al massimo il programma farà 200 iterazioni per individuare la sequenza dato un numero tra 1 e C(200;30).Una nullità!
Circa il problema che ha posto Superpippone circa le cartelle del lotto o bingo la soluzione è molto semplice: dato che su ogni cartella ci sono 3 quintine (mi sembra) per sapere quante cartelle si possono generare basta fare questo calcolo
Poniamo D=C(90;5) allora
Totale cartelle= [D*(D-1)*(D-2)]/3!. È un numero molto grande.
Spero di essere stata chiara

axpgn
"H3st3r1na":
... ma parte da presupposti diversi ...

Sì, certamente ed è per questo che ti chiedevo qual era lo scopo preciso; cmq se si vuole "solo" partire da un numero (univoco) che rappresenta una sestina per trovare quest'ultima allora è indifferente usare le combinazioni o le disposizioni ma partendo da quest'ultime la semplificazione è (più che) notevole.
Se si vuole partire dalle combinazioni sicuramente il procedimento di superpippone e la formula di nino sono formalmente ed esteticamente migliori ma soprattutto hanno la maggior efficienza, però la loro implementazione in qualsiasi sw è decisamente più complicata (non proprio alla portata di tutti) mentre quella che suggerisco è (più che) banale ( :D ) e per situazioni come quella in questione ha tempi computazionali più che accettabili.
IMHO, ovviamente ... :D

Cordialmente, Alex

superpippone
Per quanto riguarda la tombola non è semplice come tu pensi!
Per come sono "strutturate" le cartelle, è assolutamente improponibile partire dalle cinquine.
Per farti un esempio la cinquina 1-29-39-59-69, mi esclude automaticamente tutte le altre cinquine che contengono contemporaneamente "numeretti" (2-3-4-5-6-7-8-9) e altri numeri appartenenti alle decine del 20-30-50-60.
E non va bene neanche $C_(90,15)$ perchè ci sarebbero anche cartelle con 15 numeri consecutivi. Mentre al massimo ne esistono 6 di consecutivi. E anche questi a certe condizioni (esempio:17-18-19-20-21-22).
Dei quindici numeri (divisi in 3 righi da 5), ce ne possono essere al massimo 3 per decina.
Poi c'è la complicazione la prima decina è in realtà una "nonina" (numeri da 1 a 9).
E l'ultima decina in realtà è una "undicina" (numeri da 80 a 90).
Le cartelle sono comunque svariati miliardi....
E' un calcolo che non ho sviluppato materialmente, ma di cui ne ho l'impostazione nella "zucca".....
Ma come sono bravo, e soprattutto modesto!!!

superpippone
Alex: evidentemente sono proprio tondo, o tonto, che dir si voglia.
Non riesco proprio a capire il funzionamento del tuo metodo...
Mi potresti fare un esempio pratico?
Meglio se parti dalla sestina in questione, ovvero $26.852.369$
Grazie

H3st3r1na
Per quanto riguarda la tombola non è semplice come tu pensi!
Per come sono "strutturate" le cartelle, è assolutamente improponibile partire dalle cinquine.
Per farti un esempio la cinquina 1-29-39-59-69, mi esclude automaticamente tutte le altre cinquine che contengono contemporaneamente "numeretti" (2-3-4-5-6-7-8-9) e altri numeri appartenenti alle decine del 20-30-50-60.
E non va bene neanche C90,15C90,15 perchè ci sarebbero anche cartelle con 15 numeri consecutivi. Mentre al massimo ne esistono 6 di consecutivi. E anche questi a certe condizioni (esempio:17-18-19-20-21-22).
Dei quindici numeri (divisi in 3 righi da 5), ce ne possono essere al massimo 3 per decina.
Poi c'è la complicazione la prima decina è in realtà una "nonina" (numeri da 1 a 9).
E l'ultima decina in realtà è una "undicina" (numeri da 80 a 90).
Le cartelle sono comunque svariati miliardi....
E' un calcolo che non ho sviluppato materialmente, ma di cui ne ho l'impostazione nella "zucca".....
Ma come sono bravo, e soprattutto modesto!!!]


Superpippone scusami la saccenza sulla questione del Bingo, io non lo gioco quindi non conosco i vincoli.
Se ci illumini su tutti i vincoli forse tireremo fuori qualcosa :wink:

superpippone
Ciao.
Non c'è nulla di cui scusarsi. E nessuna pseudo-saccenza da parte tua.

I vincoli non sono poi tanti, e (più o meno) li ho nominati tutti.
Comunque faccio un breve riepilogo.

a) 15 numeri in totale
b) 3 righe da 5 numeri ognuna
c) 9 colonne (una per ogni decina)
d) da 0 a 3 numeri per ogni colonna (logico: se fossero di più, le 3 righe non basterebbero..)
e) in ogni colonna i numeri sono disposti in ordine crescente
f) le colonne sono disposte in ordine crescente da sinistra verso destra
g) la prima "decina" in realtà ha 9 numeri (da 1 a 9) e l'ultima 11 (da 80 a 90)
Penso sia tutto

Come già detto, un'ideuzza ce l'ho (ma non è certo che sia quella buona...).
Il procedimento è molto complesso. Più che difficile, direi lungo.
E poichè ho scarsa dimestichezza con i fogli di calcolo, mi è abbastanza ostico
Ma se proprio vuoi farti del male........

H3st3r1na
solo per completezza può verificarsi che ci siano 5 colonne con 3 numeri?
Scusa la mia ignoranza nel gioco della tombola...

superpippone
In teoria si.
Anche se non ne ho mai viste.
Ma questo non ha alcuna importanza, visto che cerchiamo le cartelle possibili.
E pertanto queste ne fanno pienamente parte.

axpgn
@superpippone
Intendi il primo o il secondo metodo? Quello è il numero di una combinazione?

H3st3r1na
Ho codificato da n°posizione lessicografico a sequenza che potete osservare al seguente indirizzo:
http://goo.gl/mCok7H.
Premendo F5 il programma genere 30 posizioni lessicografiche casuali con le relative sequenze.
E' una scheggia!!!

superpippone
alex: utilizza quel numero, e dividilo (come dici tu)ripetutamente per 90. Voglio vedere cosa salta fuori.

Hesterina: sei una potenza. Adesso provo a collaudare manualmente. Giusto per curiosità.

Posso dirti quante sono le cinquine possibili per la tombola.

$(70*60*50*40*30+9*70*60*50*40+11*70*60*50*40+9*11*70*60*50)/(5!)$

$(252.000.000+75.600.000+92.400.000+20.790.000)/(5!)=(440.790.000)/120=3.673.250$

Ma questo va bene solo per trovare la prima. Poi, a seconda dei numeri che sono usciti, c'è una serie di esclusioni a catena.
Impossibili da catalogare

H3st3r1na
Superpippone io non mi trovo con il tuo numero e non ho capito come ci sei arrivato.
Io ho ragionato nel seguente modo:
ogni cinquina non deve avere avere nessuna numero appartenente alla stessa decina ripetuto ergo noi abbiamo le seguenti decine: 0 1 2 3 4 5 6 7 8 con casi particolari nella decino dello 0 e dell'8 rispettivamente aventi 9 e 11 numeri.
Questi nove insiemi di numeri li si possono prendere 5 alla volta quindi abbiamo c(9;5) = 126
di cui 35 combinazioni hanno la decina 0 quindi abbiamo 35*9*10*10*10*10=3150000 cinquine
di cui 35 combinazioni hanno la decina 0 e 8 quindi abbiamo 35*9*10*10*10*11=3465000
di cui 35 combinazioni hanno la decina 8 quindi abbiamo 35*10*10*10*10*11=3850000
di cui 21 combinazioni che non hanno ne la 0 ne la 8 quindi abbiamo 21*10*10*10*10*10=2100000
totale :12565000 cinquine che non hanno nessuna decina che si ripete.
Se ho commesso qualche errore nel ragionamento correggetemi.

axpgn
"superpippone":
alex: utilizza quel numero, ...

Perché funzioni quel numero deve rappresentare una disposizione (con ripetizioni, questo mi ero dimenticato di dirlo ...) cioè un numero tra $1$ e $90^6$; se invece rappresenta una combinazione (cioè uno dei seicento milioni e rotti ...) allora non funziona.
Ogni possibile ordinamento di sei numeri presi da un insieme di novanta è assimilabile ad un numero a base $90$; qualsiasi sia la base, il procedimento per ottenere le singole "cifre" è sempre lo stesso ...
Per esempio $26.852.369$, lo dividiamo per $90$ e troviamo il resto di $59$ che è la "cifra" delle unità; poi prendiamo la parte intera della divisione cioè $298.359$ e la dividiamo per $90$ ottenendo come resto $9$ che è la "cifra" delle decine e così via ... anzi c'è un errore: il resto va aumentato di $1$ (perché le "cifre" vanno da $0$ a $89$).

Cordialmente, Alex

superpippone
Hesterina:
Mi sa che è giusto il tuo.
Ma non trovo nè dove, nè perchè è sbagliato il mio...

Alex: non fare il birbante. Continua quella divisione, e dimmi tutti e sei i numeri.
Guarda che veramente non ci arrivo....

superpippone
Trovato l'inghippo:

$(70*60*50*40*30)/(5!)+(9*70*60*50*40)/(4!)+(11*70*60*50*40)/(4!)+(9*11*70*60*50)/(3!)$

$(252.000.000)/120+(75.600.000)/24+(92.400.000)/24+(20.790.000)/6$

$2.100.000+3.150.000+3.850.000+3.465.000=12.565.000$

Avevi effettivamente ragione tu!!
E pur se fatti con altri ragionamenti, tutti e 4 i parziali collimano con i tuoi.

Un'altra cosa: mi puoi confermare al numero d'ordine 48.830.474 corrisponde la sestina 2 6 19 51 74 80?
C'è qualcosa che non mi torna. Probabilmente ho sbagliato qualche conteggio.
Ma ogni volta che entro, mi propone sestine diverse....

axpgn
"superpippone":
... mi puoi confermare al numero d'ordine 48.830.474 corrisponde la sestina 2 6 19 51 74 80?


Yes

superpippone
Alex: o.k. per la sestina.
Me n'ero accorto anch'io.
Ho verificato i miei conteggi, ed avevo commesso un piccolo errore di calcolo.
Oggi sono un pelino distratto.....

axpgn
"superpippone":
Alex: non fare il birbante. Continua quella divisione, e dimmi tutti e sei i numeri.

Allora ... vediamo di capirci ...
Prendiamo un numero compreso tra $1$ e $90^6$ (tante sono le disposizioni con ripetizione di sei numeri presi da un insieme di $90$), per esempio $26.852.369$

Dividiamolo per $90$ ed otteniamo $298359$ con il resto di $59$, aggiungiamo uno al resto ed otteniamo il primo numero della sestina cioè $60$; ripetiamo il tutto per altre cinque volte e cioè $298359:90=3315$ col resto di $9$ per cui la seconda cifra è $10$; proseguiamo ... $3315:90=36$ col resto di $75$ perciò la terza cifra è $76$ e poi $37$, $1$ e $1$.
Chiaramente questa sestina non è valida per il superenalotto ma non è un problema, semplicemente la scartiamo (equivalentemente possiamo dire che il numero di partenza non rappresenta una sestina del gioco).
Mi ripeto di nuovo: se lo scopo è quello di legare (biunivocamente) un numero ad una sestina, è indifferente dal punto di vista teorico qual è insieme di numeri usiamo (combinazioni o disposizioni con ripetizione).
Detto in altro modo: che ti cambia se la sestina $2-6-19-51-74-80$ la rappresenti col numero (codice) $48.830.474$ oppure con $12.217.730.840$ ? Niente, ma nel secondo caso (cioè usando le disposizioni) è molto più veloce, molto più anche della scheggia creata da Esterina ( :-) ) ...

Cordialmente, Alex

H3st3r1na
Il numero di cartelle del lotto o bingo se non ho fatto male i calcoli è:
118.425.037.500.000.000.000 CARTELLE,
da ciò sono escluse le cartelle a zebra cioè quelle che nelle hanno 5 colonne con tre numeri esempio e 4 colonne vuote.
1-10-20-30-40- - - - -
2-11-22-31-43- - - - -
7-18-25-36-49- - - - -

Oppure
5- -24- -31- -51- -73- -
7- -26- -33- -54- -77- -
8- -29- -37- -55- -79- -

axpgn
@superpippone
Sei sicuro che nelle cartelle della tombola ci siamo delle colonne vuote? O meglio, io credo di non averne mai visto più di una vuota ... credo che anche questo sia un vincolo da tenere in conto, isn't it? :wink:

Cordialmente, Alex

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.