Il programma, implementato in vari linguaggi di programmazione, visualizza le combinazioni di n bit e calcola il tempo di elaborazione 

 Il valore di  n viene fornito in input ed è  compreso tra 1 e 18 nel caso di Visual C# e Visual Basic e tra 1 e 24 nel caso di Java. L'algoritmo è quello utilizzato quando l'esercizio fu proposto nell'anno scolastico 2011-2012 agli alunni della classe IVBI dell'ITS Alessandrini di Teramo e allora implementato in C++ :

  1. si fornisce il valore di n
  2. si calcola il numero di combinazioni k pari a 2^n
  3. ciascun numero decimale da 0 a k-1 viene convertito in una stringa binaria che viene formattata aggiungendo uno o più zeri iniziali in modo tale che la lunghezza sia sempre uguale ad n

Ad esempio: n=3 Numero di combinazioni: 2^3=8
Si convertono in stringhe binarie i numeri decimali da 0 a 7 e si formattano a lunghezza 3.        Risultato: 000 001 010 011 100 101 110 111

L'algoritmo non è sicuramente il più efficiente, ma ha il pregio di essere facilmente comprensibile e utilizza la conversione decimale-binaria che è generalmente conosciuta dagli studenti di informatica e in molti linguaggi di programmazione viene fatta in modo nativo. Il valore massimo è fissato in n=18 o n=24: andare oltre significherebbe attendere diversi minuti perché l'elaborazione venga completata.

L'esercizio fa comprendere come in molti casi la velocità di elaborazione dell'algoritmo utilizzato sia fondamentale per realizzare una soluzione efficace ed ottimale.

 

combinazioninbitvcs

 

Scarica il codice Visual C#

Scarica il codice Visual Basic

Scarica il codice Java Console

Scarica il codice Java Swing