Sistemi a correzione di errore (calcolo combinatorio)
(1/1)
seven.7:
Buongiorno a tutti,
ho fatto un po' di ricerche ma non sono arrivato a nulla di concreto. Stò sviluppando un applicazione per creare sistemi come da oggetto. Non riesco però a scrivere il codice per estrapolare le combinazioni possibili. Cioè se ho N elementi e voglio creare sistemi da K elementi come posso tirar fuori da codice le combinazione che posson avere gli N elementi con una lunghezza di K elementi?
Riporto una risposta
Citazione
Hai 6 elementi: a, b, c, d, e, f
Considera che ogni elemento lo puoi prendere una sola volta, quindi la quartina di partenza sarà
abcd
per proseguire aumenta di uno l'ultimo elemento a destra:
abce
prosegui aumentando l'ultimo elemento a destra finché puoi:
abcf
quando hai terminato i simboli in ultima posizione devi aumentare di uno il PENULTIMO elemento e riscrivere la combinazione ricordando che non puoi fare ripetizioni:
abde
e poi ricominci ad aumentare l'ultimo a destra:
abdf
terminati i simboli devi riaumentare il penultimo:
abef
e avendo terminato i simboli possibili sia sull'ultima che sulla penultima posizione, devi aumentare la terzultima di uno e riscrivere la tua combinazione di partenza:
acde
poi ricominci ad aumentare l'ultimo e il penultimo fino ad esaurimento dei simboli:
acdf
acef
aumenta ancora di uno il terzultimo e ricomincia:
adef
ora hai esaurito tutti i simboli nelle posizioni 2, 3, 4 e dunque devi aumentare la prima e ricominciare da capo:
bcde
bcdf
bcef
bdef
Di nuovo hai esaurito tutte le possibilità, dunque aumenti ancora la prima e in pratica hai finito:
cdef
ecco dunque le tue C(6, 4) = 15 combinazioni:
abcd
abce
abcf
abde
abdf
abef
acde
acdf
acef
adef
bcde
bcdf
bcef
bdef
cdef
Solo che non riesco a scriverla da codice :( Consigli?
Navigazione