No es realmente una elegante prueba de esto, que prácticamente no requiere de experiencia en las matemáticas.
Todos los programas de ordenador son una secuencia finita de bytes, que es sólo un número en base 256. Para cada programa de ordenador puede ser representado como un número natural único. Esta declaración se explica en detalle a continuación de la brecha.
- Si un programa de ordenador imprime su propio número, luego de que el programa es de color azul y su número es de color azul.
- Si un programa no imprime su propio número, luego de que el programa es rojo y su número es rojo.
El conjunto de rojo los números es un subconjunto de los números naturales. Ahora escribir un programa que imprime este conjunto. Es que el programa rojo o el azul?
- Supongamos que el programa es rojo. A continuación, debe imprimir su propio número como parte del conjunto, pero esto hace que sea un azul programa.
- Supongamos que el programa es de color azul. A continuación, debe imprimir su propio número de azul programa, pero esto hace que su salida no esté en el conjunto de rojo los números.
Este programa es imposible! Por lo tanto, debe existir al menos un conjunto de programas que puede que no se imprima.
Así es como me enteré de que el conjunto de Cantor/subconjunto de la desigualdad. No podía encontrar un mejor enlace, pero lo tengo de Martin Gardner libro.
Anexo
Vamos a entrar en la declaración de
cada programa de ordenador puede ser representado como un número natural único
Esto implicará algunos de matemáticas, en particular cuando se trabaja en binario. Vamos a crear una numeración de Gödel para los programas de ordenador.
Suponga que cada programa puede ser representado como un número finito de cadena de 0's y 1's. Esto describe con precisión el mundo real de los programas y la entrada a una Máquina de Turing Universal.
Por lo que cualquier programa dado X es x1x2...xN , donde xi es 0 o 1 para cada i.
Definamos Num(X)
como el número binario 1 x1x2...xN. Num(X)
del programa X = '0110' sería '10110' en binario, que es de 22.
Num(X)
le da a cada programa un número natural único, porque...
- Si dos programas tienen diferente longitud, a continuación, el programa más largo tiene un mayor
Num()
de la menor.
- Si dos programas tienen la misma longitud, pero difieren en algunos trozos, a continuación, la representación binaria es diferente para que poco, por lo
Num()
serán diferentes entre los programas.
- En cualquier otro caso, los dos programas tienen la misma longitud y con idéntica bits, lo que significa que son idénticos a los programas.
Ahora podemos conseguir que en el conjunto de la teoría parte de la prueba.
La prueba supone binario, pero en la medida en que su programa es finitely describible en cualquier idioma que utiliza un número finito de caracteres (como el inglés!) del mismo modo se puede asignar a un único número natural. Esto es interesante porque se extiende la prueba de los programas a cualquier descriptible concepto (como el genio de los deseos!).