Permutazioni, combinazioni e disposizioni
1. Permutazioni
Supponiamo di avere n oggetti, ognuno con una etichetta che serva ad identificarlo, ad
esempio mediante un intero compreso 1 e n. Per visualizzare meglio il problema,
supponiamo che si tratti di n libri, numerati da 1 a n da sinistra verso destra in uno
scaffale. Se i libri ordinati secondo l’ordine alfabetico degli autori, può venirci voglia di
ordinarli invece secondo l’anno di edizione, ovvero secondo l’ordine alfabetico del titolo
Dal punto di vista delle etichette numerate noi eseguiamo l’operazione seguente: i numeri
da 1 a n, che inizialmente si presentano in ordine (1 2 3 ... n) vengono messi un ordine
diverso, ad esempio 2 1 3 ... n. In quanti modi è possibile cambiare l’ordine dei libri o,
che è lo stesso, l’ordine dei numeri da 1 a n?
E’ facile vedere che, se i numeri sono soltanto due, ci sono solo due modi di metterli in
ordine:
1 2
2 1.
E’ quasi altrettanto facile contare in quanti modi si possono ordinare tre numeri:
1 2 3
2 1 3
3 2 1
3 1 2
2 3 1
1 3 2.
Ognuno dei modi di ordinare si chiama permutazione dei numeri da 1 a n. Quindi le
permutazioni di due numeri sono 2, le permutazioni di 3 numeri sono 6.
Quando aumentiamo n diventa più difficile contare tutte le permutazioni. E’ tuttavia
possibile costruire un algoritmo che permette di fare il calcolo per ogni n. Consideriamo
in effetti tutte le permutazioni in cui il numero 1 resta al primo posto, cioè della forma:
1 2 3 ... n
1 3 2 ... n
1 4 3 ... n
.....
Siccome il numero 1 ha il primo posto sempre, queste sono le permutazioni, cioè tutti gli
ordinamenti possibili, dei numeri 2 3 ... n. In pratica si tratta delle permutazioni di n-1
numeri. Per rendere più semplice e chiaro il nostro ragionamento, diamo un nome al
numero di permutazioni di n numeri, P(n). Allora le permutazioni con 1 al primo posto
sono esattamente P(n-1). Possiamo ora considerare le permutazioni che hanno il numero
2 al primo posto:
2 1 3 ... n
2 3 1 ... n
2 4 3 ... n
.....
Anche queste sono P(n-1), come sono P(n-1) le permutazioni che hanno 3, oppure 4,... al
primo posto. Ne concludiamo che le permutazioni sono in totale n volte P(n-1):
P(n
+2
....+
"1)
14"1)
44
4P(n
44
3
n
!
Cioè abbiamo la formula: P(n) = n P(n-1), che ci dà un algoritmo per ottenere P(n).
In effetti si avrà: P(n) = n P(n-1) = n(n-1) P(n-2) = n(n-1)(n-2) P(n-3) = n (n-1) " "" 2 " P(1).
Ma P(1) è il numero di permutazioni di un solo numero e quindi vale ovviamente 1. In
conclusione otteniamo che P(n) è il prodotto di tutti i numeri interi da 1 a n.
Osservazione 1. La nostra dimostrazione sarebbe più rigorosa se usasse il principio di
! !
induzione, nel modo seguente.
Si vuole provare che P(n) = n (n-1) " "" 2 " 1.; basta osservare che si ha: P(1) = 1, cioè la
formula è vera per n = 1, e che, se la formula vale per n-1, allora vale anche per n grazie
all’eguaglianza P(n) = n P(n-1).
Il numero P(n) si chiama anche n fattoriale e si denota con il simbolo n!.
! !
La nostra dimostrazione precedente mette in evidenza un algoritmo per calcolare il
fattoriale, cioè un procedimento che esegue la costruzione per passi successivi, ognuno
dei quali usa quanto ottenuto nel passo precedente. E’ quindi ottima per la trasformazione
in un programma in Basic, che presentiamo in allegato.
Osservazione 2. Il programma che calcola il fattoriale vale in teoria per ogni numero
intero n. In pratica i calcoli del computer si fermano al limite delle sue capacità di
operare. Si può verificare che il programma esegue il calcolo di 2!, 3!,..., 12!, ma non
riesce a calcolare 13! perché si tratta di un numero troppo grande.
2. Disposizioni e combinazioni
Supponiamo ora invece di avere n oggetti, ad esempio i soliti libri, e di volerli
raggruppare a k a k (con l’intesa ovvia che k ≤ n), tenendo conto dell’ordine in cui
vengono messi (I Promessi sposi al primo posto e la Divina commedia al secondo posto
non è la stessa cosa che la Divina commedia al primo posto e i Promessi sposi al
secondo). Ad esempio può avere senso collocare 1000 libri in 20 scaffali, cioè formare
20 gruppi ordinati di 50 libri. Se non ci preoccupiamo dell’ordine alfabetico per autore o
per titolo, se cioè siamo disposti a scegliere a caso i 50 libri da mettere in ogni scaffale, in
quanti modi possiamo formare questi 20 gruppi ordinati di 50 libri?
Possiamo assegnare ad ogni libro un’etichetta con un numero da 1 a n e quindi il nostro
problema diventa: in quanti modi possiamo scegliere e mettere in ordine k numeri scelti
fra n? Ognuno di questi modi si chiama disposizione degli n numeri a k a k.
Consideriamo tutti i gruppi ordinati di k numeri che contengono il numero 1 al primo
posto; in ognuno di questi gruppi ci sono k-1 numeri diversi da 1 scelti fra i numeri da 2 a
n. Si tratta quindi di tutti i possibili raggruppamenti ordinati dei numeri da 2 a n su k-1 in
gruppi di k-1 numeri. Chiamiamo D(n,k) il numero di disposizioni di n numeri a k a k,
cioè il numero di modi in cui n numeri si possono ordinatamente raggruppare a k a k.
Poiché ci sono i gruppi che contengono il numero 1 al primo posto, i gruppi che
contengono il numero 2 al primo posto, ..., possiamo concludere che le disposizioni che
contengono il numero 1 al primo posto sono D(n-1,k-1) , e questo stesso numero si
ottiene per le disposizioni che contengono 2, oppure 3, ... al primo posto. Possiamo
dedurne che si ha: D(n,k) = nD(n-1,k-1).
Abbiamo dunque ottenuto una formula induttiva: le disposizioni D(n,k) sono n volte le
disposizioni D(n-1,k-1), che a loro volta son n-1 volte le disposizioni D(n-2,k-2), ... .
In sostanza la nostra formula è la seguente: D(n,k) = n(n-1)(n-2) .......(n-k+1). Non
andiamo oltre perché, quando arriviamo a disporre n-k+1 elementi su un solo posto
otteniamo esattamente n-k+1 disposizioni.
Si osservi che la nostra formula si può anche scrivere in altro modo:
n!
D(n,k) = n(n-1)(n-2) .......(n-k+1) = (n"k
)! .
Passiamo ora a considerare le combinazioni di n elementi a k a k, cioè la scelta di k
elementi fra n in tutti i modi possibili, senza tenere conto dell’ordine. Basta osservare che
da una combinazione di n!elementi a k a k si possono ricavare k! disposizioni, in quanto la
fissata combinazione si può permutare in tutti i possibili modi. Ne deduciamo che il
numero delle combinazioni è
D(n.k)
n!
.
C(n,k)=
=
k!
k!(n " k)!
!
Il ragionamento che ha condotto a calcolare le permutazioni, le disposizioni, le
combinazioni, consente di trovare facilmente un algoritmo da trasformare in programma
per il computer. In effetti tutte le formule si riconducono al calcolo del fattoriale, che è il
prodotto di n numeri consecutivi da 1 a n, e questo permette di calcolare il fattoriale per
un certo valore i semplicemente moltiplicando per i il valore del fattoriale per i-1,
partendo dal valore 1 = 1!. Si tratta essenzialmente di un comando del tipo “ for i = 1 to
n”.