Calcolo combinatorio

giovanni1#14
Buona sera.

La formula per calcolare le combinazioni possibili di un gioco tipo l'enalotto è questa $Xn,p=\frac{n!}{p!(n-p)!$. La formula funziona perchè i numeri si incrementano di sempre di uno:
01, 02, 03, 04, 05, 06
01, 02, 03, 04, 05, --, 07
01, 02, 03, 04, 05, --, --, 08
poi..
01, 02, 03, 04, --, 06, 07
01, 02, 03, 04, --, 06, --, 08
01, 02, 03, 04, --, 06, --, --, 09

Come sarebbe la formula se io volessi incrementare i numeri a gruppi che possono essere diversi tra loro? Esempio..
01, 02 | 03, 04, 05, 06 | 07 | 08, 09, 10
01, 02 | 03, 04, 05, 06 | 07 | --, --, -- | 11, 12, 13
01, 02 | 03, 04, 05, 06 | 07 | --, --, -- | --, --, -- | 14, 15, 16
poi..
01, 02 | 03, 04, 05, 06 | -- | 08 | 09, 10, 11
01, 02 | 03, 04, 05, 06 | -- | 08 | --, --, -- | 12, 13, 14
01, 02 | 03, 04, 05, 06 | -- | 08 | --, --, -- | --, --, -- | 15, 16, 17
poi..
01, 02 | --, --, --, -- | 07, 08, 09, 10 | 11 | 12, 13, 14
01, 02 | --, --, --, -- | 07, 08, 09, 10 | -- | 12 | 13, 14, 15
01, 02 | --, --, --, -- | 07, 08, 09, 10 | -- | 12 | --, --, -- | 16, 17, 18
01, 02 | --, --, --, -- | 07, 08, 09, 10 | -- | 12 | --, --, -- | --, --, -- | 19, 20, 21
ecc..

È da qualche giorno che mi rompo il cervello per trovare la soluzione, ma mi devo arrendere..
Ho messo in questa pagina: https://www.linkfloripa.com/Loterias/lo ... ulaIt.aspx un generatore di combinazioni come esempio.

Apprezzo qualsiasi aiuto.

Giovanni.

Risposte
axpgn
Non ho capito niente ma penso che forse stai cercando questa $((k_1+k_2+...+k_n)!)/(k_1!k_2!...k_n!)$ :-D



Cordialmente, Alex

giovanni1#14
Ti ringrazio per la risposta, ma non so se è quello che mi serve.
Cercherò di spiegarmi meglio..
La formula per sapere quante combinazioni ci sono nell'enalotto è $\frac{90!}{6!(90-6)!$ e si deve indovinare 6 numeri su 90. Nel mio caso devo indovinare 10 numeri su 30, quindi $\frac{30!}{10!(30-10)!$=30.045.015 combinazioni.
Io voglio ridurre la quantità di combinazioni avanzando nell'elaborazione non di un numero come di normale..
01, 02, 03, 04, 05, 06, 07, 08, 09, 10
01, 02, 03, 04, 05, 06, 07, 08, 09, --, 11
01, 02, 03, 04, 05, 06, 07, 08, 09, --, --, 12

ma avanzando a gruppi di numeri. Per esempio se i gruppi sono 2, 4, 1, 3 lo sviluppo comincerebbe com..
01, 02 | 03, 04, 05, 06 | 07 | 08, 09, 10
01, 02 | 03, 04, 05, 06 | 07 | --, --, -- | 11, 12, 13
01, 02 | 03, 04, 05, 06 | 07 | --, --, -- | --, --, -- | 14, 15, 16

Da programmazione riesco a farlo, ma non so farlo com una formula..
Per favore dai un'occhiata alla pagina qui sotto, li c'è una routine che crea tutte le combinazioni possibili, dipendendo dai gruppi selezionati.
https://www.linkfloripa.com/Loterias/lo ... ulaIt.aspx

Grazie di nuovo,
Giovanni.

axpgn
Premessa per moderatori, amministratori, skuola.net e quant'altro:

Questo messaggio l'ho visto per caso ora, DIECI giorni dopo che è stato postato!
Questo perché essendo stato approvato in ritardo ma entrato in lista con la data in cui è stato inserito. è finito sepolto dai post successivi e non è neppure stato evidenziato come non letto.
È una situazione assurda!
La regola che i primi post vadano precedentemente approvati prima di essere pubblicati funziona (ovvero ha senso) solo se passa poco (pochissimo) tempo tra inserimento e pubblicazione, altrimenti è come la corazzata Potemkin :wink:
E poi c'è chi si chiede nella sezione "Generale" perché sta calando l'affluenza al Forum :roll: :roll:

@giovanni1#
Non so se ho capito bene ma per fare il conteggio che ti interessa non serve una formula, ti basta ragionare così (seguo il tuo esempio linkato)
Il primo blocco di un numero solo può avere $21$ possibilità (il tuo esempio arriva a $23$ ma perché "sborda" e a mio parere ciò non è corretto ma se tu lo ritieni tali allora fallo arrivare a $23$) poi il secondo blocco da quattro parte dalla posizione $2$ e arriva alla $22$ (alla $24$ secondo te) e quindi sono altre $21$ possibilità da moltiplicare per le precedenti $21$ e così via ...

Cordialmente, Alex

axpgn
Correzione:
Il blocco di $4$ lo sposti di quattro posizioni alla volta quindi le possibilità del blocco da $4$ saranno $21/4$ ecc.

axpgn
No, non funziona così, mi son lasciato prendere la mano ... :?
Devo pensarci su ... se trovo qualcosa, te lo faccio sapere ...


Cordialmente, Alex

axpgn
Se lo spostamento dei blocchi fosse unitario allora andrebbe bene una formula così fatta $sum_(k=1)^n sum_(j=1)^k sum_(i=1)^j (i(i+1))/2$ ma siccome lo spostamento è pari alla lunghezza del blocco, le cose cambiano :?
Grossolanamente si può fare una stima, dividendo il numero trovato con quella formula per la lunghezza del blocco (per esempio se il blocco è lungo $4$ e la "distanza" da percorrere è $20$, con lo spostamento unitario ho venti possibilità mentre con uno spostamento quattro volte maggiore, le possibilità diventano un quarto).
Ma è una stima molto, molto lontana dal numero reale ...

Mah, ci penserò ... credo :-D


Cordialmente, Alex

axpgn
Ecco un piccolo codice (in Just Basic) che conta tutte le combinazioni con esclusione di quelle che "sbordano"



Cordialmente, Alex

axpgn
"Giovanni se n'è andato e non ritorna più" (semi-cit.)
E così ci siamo giocati anche Giovanni ... :?

giovanni1#14
Ci sono ancora.. nessuno mi rispondeva e non sono più entrato.
Grazie Alex..

Per non far "sbordare" le combinazioni basta mettere l'ultimo gruppo a 1.
Se cosi è più semplice mi va bene anche l'ultimo gruppo con 1 fisso.
I gruppi sono variabili, come la quantità di numeri.
Ho già cambiato la pagina nel sito.

Stavo tentando con Excel ma è un lavoraccio..
Qualsiasi idea sarà ben gradita..

Giovanni.

axpgn
Forza Giovanni! Ho visto che ci sei, non mollare! Rispondi! :lol: :lol:

giovanni1#14
Ho risposto, ma non so dov'è andata.. deve essere approvata? :? :?

axpgn
Adesso c'è, porta pazienza :D

"giovanni1#":
Per non far "sbordare" le combinazioni basta mettere l'ultimo gruppo a 1.
Se cosi è più semplice mi va bene anche l'ultimo gruppo con 1 fisso.


Con Excel mi sembra molto complicato mentre il mio codice è semplice; devo pensarci su se mettere un gruppo da 1 in fondo è sufficiente.

Cordialmente, Alex

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