L'sono numerabile molte funzioni computabili:
Ogni funzione calcolabile ha almeno un algoritmo. Ogni algoritmo ha una descrizione finita usando i simboli di un insieme finito, ad esempio stringhe binarie finite usando i simboli . Il numero di stringhe binarie finite indicato da è numerabile (cioè uguale al numero di numeri naturali ).{ 0 , 1 } ∗ N{ 0 , 1 }{ 0 , 1 }*N
Pertanto possono esserci al massimo numerose funzioni calcolabili. Ci sono almeno molte funzioni calcolabili numerabili poiché per ogni , la funzione costante è calcolabile. f ( x ) = cc ∈ { 0 , 1 }*f( x ) = c
In altre parole, esiste una corrispondenza tra:
- l'insieme di funzioni calcolabili,
- il set di algoritmi,
- { 0 , 1 }{ 0 , 1 }* , l'insieme di stringhe finite da e{ 0 , 1 }
- N , l'insieme dei numeri naturali.
D'altra parte, ci sono innumerevoli funzioni su stringhe (o numeri naturali). Una funzione (oppure ) assegna un valore per ciascun input. Ognuno di questi valori può essere scelto indipendentemente dagli altri. Quindi ci sono possibile funzione. Il numero di funzioni sui numeri naturali è uguale al numero di numeri reali. f : { 0 , 1 } ∗ → { 0 , 1 } ∗ N N = 2 Nf:N→Nf:{0,1}∗→{0,1}∗NN=2N
Poiché solo molte funzioni sono calcolabili, la maggior parte di esse non lo è. In effetti il numero di funzioni non calcolabili è anche .2N
Se vuoi immaginarlo in modo intuitivo, pensa ai numeri naturali e ai numeri reali, o alle stringhe binarie finite e alle stringhe binarie infinite. Esistono molti più numeri reali e stringhe binarie infinite rispetto ai numeri naturali e alle stringhe finite. In altre parole (per una prova di questo fatto vedi l'argomentazione diagonale di Cantor e l' aritmetica cardinale ).N<2N