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

  • 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

  • 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;

    }

Domande da interrogazione

  1. Cosa sono le disposizioni semplici e come si calcolano?
  2. 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)!.

  3. Qual è la differenza tra disposizioni semplici e disposizioni ripetute?
  4. 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.

  5. Come si implementano le disposizioni semplici e ripetute in C?
  6. 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.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community