Concetti Chiave
- Le disposizioni semplici consentono di esplorare combinazioni di k elementi da un insieme di n elementi distinti senza ripetizione.
- Il numero totale di disposizioni semplici è calcolato con la formula (n!)/(n-k)!
- Il codice fornito per le disposizioni semplici utilizza una funzione ricorsiva per generare e stampare le combinazioni.
- Le disposizioni ripetute permettono di includere nuovamente gli stessi elementi, risultando in n^k combinazioni possibili.
- Il codice per le disposizioni ripetute anch'esso utilizza una funzione ricorsiva, ma permette la ripetizione degli elementi durante la generazione delle combinazioni.
Esplorazione dello spazio - Quali sono le disposizioni semplici e ripetute in C?
- Disposizioni semplici: le disposizioni semplici permettono di esplorare lo spazio delle soluzioni di k elementi dato un insieme di n elementi distinti (con 0 ordine e senza ripetizione dei k elementi stessi; (esempio di utilizzo, quanti numeri da 2 cifre si possono creare con 4, 5 , 2, 1).
Vi sono esattamente (n!)/(n-k)! disposizioni semplici.
Esempio:
Esempio di codice per disposizioni semplici
int disp_s(int pos, int *val, int *sol, int *mark, int n, int k, int count){
int i;
if(pos>=k){
for(i = 0; i
printf(“%d ”, sol);
printf(“\n”);
return count+1;
}
for(i = 0; i
if(mark == 0){
mark = 1;
sol[pos] = val;
count = disp_s(pos+1, val, sol, mark, n, k, count);
mark = 0;
}
}
return count;
}
- Disposizioni ripetute: permettono di esplorare lo spazio delle soluzioni di k elementi dato un insieme di n elementi distinti (con 0
Vi sono esattamente n^k disposizioni ripetute.
Esempio:
Esempio di codice per disposizioni ripetute
int disp_r(int pos, int *val, int *sol, int n, int k, int count){
int i;
if(pos>=k){
for(i = 0; i
printf(“%d ”, sol);
printf(“\n”);
return count+1;
}
for(i = 0; i
sol[pos] = val;
count = disp_r(pos+1, val, sol, n, k, count);
}
return count;
}
Disposizioni semplici
Disposizioni ripetute
Domande da interrogazione
- Cosa sono le disposizioni semplici e come si calcolano?
- Qual è la differenza tra disposizioni semplici e disposizioni ripetute?
- Come si implementano le disposizioni semplici e ripetute in C?
Le disposizioni semplici permettono di esplorare lo spazio delle soluzioni di k elementi da un insieme di n elementi distinti, senza ripetizione. Si calcolano con la formula (n!)/(n-k)!.
Le disposizioni semplici non consentono ripetizioni degli elementi, mentre le disposizioni ripetute permettono di utilizzare gli stessi elementi più volte. Le disposizioni ripetute si calcolano con n^k.
Le disposizioni semplici e ripetute possono essere implementate in C utilizzando funzioni ricorsive, come mostrato negli esempi di codice forniti, che gestiscono la selezione e la stampa delle soluzioni.