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++ :
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.
Scarica il codice Visual Basic