Come calcolo le permutazioni e disposizioni in Python
Per calcolare le permutazioni o le disposizioni di un insieme di elementi, nel linguaggio python posso usare la funzione permutations del modulo itertools.
permutations(l,k)
- Il primo argomento è una lista di n oggetti da permutare o disporre.
- Il secondo elemento è la cardinalità k dei gruppi. Se k=n o manca la funzione calcola le permutazioni. Se k>0 calcola le disposizioni.
La funzione permutations calcola le permutazioni o le disposizioni.
Cosa sono le permutazioni e le disposizioni? Sono le possibili associazioni tra gli n elementi dell'insieme, considerando anche l'ordine degli elementi. Se viene fatto su gruppi più piccoli dell'insieme k<n sono disposizioni. Viceversa, sono permutazioni (k=n).
Un esempio pratico
Permutazioni
Ho un insieme di 3 elementi e voglio calcolare le permutazioni degli n=3 elementi.
Importo la funzione permutations dal modulo itertools
>>> from itertools import permutations
>>> p = permutations([1, 2, 3])
Alla variabile p viene assegnato l'elenco delle permutazioni possibili.
Per vederle uso la funzione list.
>>> list(p)
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
E' una lista con le permutazioni degli elementi.
Nota. Nelle permutazioni conta anche l'ordine degli elementi. Ad esempio (1,2,3) e (3,2,1) hanno gli stessi elementi ma in posizioni diverse. Per non considerare la posizione degli elementi, in statistica devo usare le combinazioni.
Disposizioni
Ho lo stesso insieme di 3 elementi.
Ora voglio calcolare le disposizioni a gruppi di 2 elementi.
>>> from itertools import permutations
>>> d = permutations([1, 2, 3],2)
In questo caso ho documentato anche il secondo argomento della funzione.
Per vedere il contenuto della variabile d uso la funzione list.
>>> list(d)
[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
E' una lista con le disposizioni degli n=3 elementi in gruppi di k=2 elementi.
A differenza delle permutazioni, le disposizioni sono calcolate su sottoinsiemi di cardinalità inferiore all'insieme principale.
E così via.