Istnieje niezliczona ilość funkcji obliczalnych:
Każda funkcja obliczalna ma co najmniej jeden algorytm. Każdy algorytm ma skończony opis przy użyciu symboli ze zbioru skończonego, np. Skończone ciągi binarne przy użyciu symboli . Liczba skończonych ciągów binarnych oznaczonych przez jest policzalna (tj. Taka sama jak liczba liczb naturalnych ).{ 0 , 1 } ∗ N{ 0 , 1 }{ 0 , 1 }∗N
Dlatego może być co najwyżej niezliczona liczba funkcji obliczalnych. Istnieje co najmniej policzalna wiele funkcji obliczalnych, ponieważ dla każdego można obliczyć funkcję stałą . f ( x ) = cc∈{0,1}∗f(x)=c
Innymi słowy, istnieje zgodność między:
- zestaw funkcji obliczalnych,
- zestaw algorytmów,
- { 0 , 1 }{0,1}∗ , zbiór ciągów skończonych z i{0,1}
- N , zbiór liczb naturalnych.
Z drugiej strony istnieje niepoliczalnie wiele funkcji nad łańcuchami (lub liczbami naturalnymi). Funkcja (lub ) przypisuje wartość dla każdego wejścia. Każdą z tych wartości można wybrać niezależnie od innych. Więc istnieje możliwa funkcja. Liczba funkcji nad liczbami naturalnymi jest równa liczbie liczb rzeczywistych. f : { 0 , 1 } ∗ → { 0 , 1 } ∗ N N = 2 Nf:N→Nf:{0,1}∗→{0,1}∗NN=2N
Ponieważ tylko policzalnie wiele funkcji jest obliczalnych, większość z nich nie. W rzeczywistości liczba funkcji nieobliczalnych również wynosi .2N
Jeśli chcesz to zobrazować intuicyjnie, pomyśl o liczbach naturalnych i liczbach rzeczywistych lub o skończonych ciągach binarnych i nieskończonych ciągach binarnych. Istnieje znacznie więcej liczb rzeczywistych i nieskończonych ciągów binarnych niż liczb naturalnych i ciągów skończonych. Innymi słowy (na dowód tego faktu patrz przekątny argument Cantora i arytmetyka kardynalna ).N<2N