-
Combinazioni semplici: le combinazioni semplici permettono di esplorare lo spazio delle soluzioni di k elementi dato un insieme di n elementi distinti (0
Vi sono esattamente (n|k) (coefficiente binomiale) combinazioni semplici.
Esempio:
Esempio di codice per combinazioni semplici
int comb_s(int pos, int *val, int *sol, int n, int k, int start, int count){
int i;
if(pos>=k){
for(i = 0; i
printf(“%d ”, sol);
printf(“\n”);
return count+1;
}
for(i = start; i
sol[pos] = val;
count = comb_s(pos+1, val, sol, n, k, i+1, count);
}
return count;
}
-
Combinazioni ripetute: permettono di esplorare lo spazio delle soluzioni di k elementi dato un insieme di n elementi distinti (0
Vi sono esattamente (n+k-1)!/(k!x(n-1)!) combinazioni ripetute.
Esempio:
Esempio di codice per combinazioni ripetute
int comb_r(int pos, int *val, int *sol, int n, int k, int start, int count){
int i;
if(pos>=k){
for(i = 0; i
printf(“%d ”, sol);
printf(“\n”);
return count+1;
}
for(i = start; i
sol[pos] = val;
count = comb_r(pos+1, val, sol, n, k, start, count);
start++;
}
return count;
}
Che cosa sono le combinazioni semplici?
Combinazioni ripetute