Tutti i programmi per computer eseguono una qualche forma di conteggio come una piccola parte di un'attività. Contare un centinaio di oggetti non richiede molto tempo, anche senza un computer. Tuttavia, alcuni computer potrebbero dover contare un miliardo di articoli o più. Se il conteggio non viene eseguito in modo efficiente, potrebbero essere necessari giorni prima che un programma completi un rapporto quando esso richiede solo pochi minuti. Ad esempio, i numeri della lotteria vincente conteggio di tutti i biglietti della lotteria dovrebbero comportare l'interruzione del conteggio di un biglietto quando non è possibile raggiungere il numero minimo di numeri corretti su quel particolare biglietto. Quando i numeri della lotteria su ogni biglietto sono preordinati, il conteggio può essere molto rapido con una strategia di divisione e conquista. Il ramo della matematica chiamato combinatorics fornisce agli studenti la teoria necessaria per codificare i programmi di conteggio che includono le scorciatoie che ridurranno il tempo di esecuzione del programma.
Algoritmi
Dopo che un conteggio è stato completato, è necessario un compito per fare qualcosa con il numero effettivo dal conteggio. Il numero di passaggi necessari per completare un'attività deve essere ridotto al minimo in modo che il computer possa restituire un risultato più rapidamente per un numero elevato di attività. Ancora una volta, se un'attività deve essere eseguita solo 20 volte, non ci vorrà molto tempo anche per il computer più lento. Tuttavia, se l'attività deve essere eseguita un miliardo di volte, un algoritmo inefficiente con troppi passaggi potrebbe richiedere giorni, anziché ore, per essere completato, anche su un computer da un milione di dollari. Ad esempio, esistono molti modi per ordinare un elenco di numeri non ordinati dal più basso al più alto, ma alcuni algoritmi richiedono troppi passaggi, il che potrebbe far sì che il programma funzioni molto più del necessario. Imparare la matematica dietro gli algoritmi consente agli studenti di creare passi efficaci nei loro programmi.
Teoria degli automi
I problemi nei computer sono molto più grandi del semplice conteggio e degli algoritmi. La teoria degli automi studia i problemi che hanno un numero finito o infinito di potenziali risultati di varia probabilità. Ad esempio, i computer che cercano di comprendere il significato della parola con più di una definizione dovrebbero analizzare l'intera frase o anche un paragrafo. Dopo che tutto il conteggio e gli algoritmi della frase o del paragrafo sono stati eseguiti, sono necessarie regole per determinare la definizione corretta. La creazione di queste regole fa parte della teoria degli automi. Le probabilità sono assegnate a ciascuna definizione in base ai risultati della parte dell'algoritmo per il paragrafo. Idealmente, le probabilità sono solo del 100% e dello 0%, ma molti problemi del mondo reale sono complicati senza risultati certi. La progettazione del compilatore di computer, l'analisi e l'intelligenza artificiale fanno un uso pesante della teoria degli automi.