Porozmawiajmy o algorytmach, które nie mogą być reprezentowane jako skończony ciąg bitów dla dowolnego rodzaju kodowania.
Pozwól, że napiszę dla ciebie taki algorytm ... Ach, ale jeśli to zrobię, mogę przedstawić ten algorytm za pomocą kodowania mojego wpisanego tekstu.
Co powiesz na reprezentowanie mojego algorytmu za pomocą jakichś „analogowych środków”, powiedzmy przez pozycję kilku monet na moim biurku. Chociaż położenie tych monet można modelować za pomocą liczb rzeczywistych (które mogą w niektórych przypadkach kodowaniach mogą być niemożliwe do skończonego przedstawienia), cały ten opis można ponownie uznać za reprezentację mojego algorytmu i można go ponownie zakodować na ciąg bitów!
Mam nadzieję, że te przykłady wyjaśniają, że jeśli jakiś algorytm nie może być reprezentowany przez skończony ciąg bitów, w ogóle nie mamy możliwości opisania tego algorytmu!
Dlaczego więc mielibyśmy rozważyć istnienie czegoś, o czym nie możemy mówić? Być może interesujące dla filozofii, ale nie dla nauki. Dlatego definiujemy pojęcie algorytmu tak, aby mogło być reprezentowane przez ciąg bitów, ponieważ wtedy przynajmniej wiemy, że jesteśmy w stanie mówić o wszystkich algorytmach.
Chociaż powyższa odpowiedź odpowiada na zadane pytanie, myślę, że zamieszanie w podanym przykładzie wynika głównie z faktu, że reprezentacja musi jedynie jednoznacznie reprezentować jakiś algorytm. Sposób reprezentacji nie musi obejmować faktycznych obliczeń wywoływanych przez algorytm! Jest to bardzo przydatne, ponieważ oznacza, że możemy reprezentować algorytmy nieobliczalne !