Le combinazioni con Matlab e Octave
Su Matlab e Octave posso calcolare le combinazioni utilizzando la funzione nchoosek().
nchoosek(n,k)
Dove n è il numero totale di elementi e k è il numero di elementi per combinazione.
Questa funzione è utilizzata per calcolare il coefficiente binomiale che rappresenta il numero di combinazioni di n elementi presi k alla volta.
In altre parole prende in input un insieme composto da n elementi e restituisce le varie combinazioni degli elementi presi a gruppi di k.
Ad esempio, voglio sapere quante sono le combinazioni di 3 elementi presi 2 alla volta:
nchoosek(3,2)
ans=3
La funzione nchoosek() mi restituisce il numero complessivo delle combinazioni possibili.
Per vedere più nel dettaglio l'elenco delle combinazioni, devo indicare al primo argomento un array con gli elementi da analizzare.
Ad esempio, definisco un array composto da tre elementi
V=[1,2,3]
Poi genero tutte le combinazioni possibili di n=3 elementi presi k=2 alla volta con la funzione nchoosek(), passando il vettore come primo parametro e il numero degli elementi da raggruppare come secondo parametro.
nchoosek(V, 2)
In questo caso la funzione restituisce una matrice dove ogni riga rappresenta una possibile combinazione di tre elementi presi dal vettore V a gruppi di due.
ans =
1 2
1 3
2 3
Ogni combinazione non si ripete più di una volta e l'ordine degli elementi non è importante.
E così via.