Як довести існування числа, яке не може бути записане жодним алгоритмом?


14

У мене проблема:

Покажіть, що існує дійсне число, для якого не існує програми, яка працює нескінченно довго, і записує десяткові цифри цього числа.

Я думаю, це можна вирішити, зменшивши його до проблеми зупинки, але я поняття не маю, як це зробити.

Я також вдячний за посилання на подібні проблеми для подальшої практики.




Ювал Філімус дав цікаву відповідь, яку слід уважно прочитати. Проблема зупинки "- це річ", яку ви можете спробувати зменшити до своєї проблеми, а не навпаки (зведіть проблему до зупинки - як ви гіпотезуєте у своєму запитанні).
quetzalcoatl

Чи можна було б покращити це питання, виправивши граматику в цитованому розділі? Мені важко розібратися.
JimmyJames

@JimmyJames, я зробив все можливе , щоб перевести його з російського мови : Объясните в одно предложение, почему существует такое вещественное число, для которого не существует программы, которая будет работать бесконечно долго и выписывать цифры его представления в десятичной системе счисления. Сподіваюся, хтось покращить мій переклад.
свіже

Відповіді:


18

Як вказує Себастьян, існує лише безліч програм (нескінченно, але). Перелічіть їх, щоб створити список програм. Цей список (нескінченно, але) незмінно довгий. Кожна програма генерує одне число у Р. З цього ми можемо створити (нескінченний, але) перелічуваний список чисел у Р. Тепер ми можемо застосувати діагональний аргумент Кантора безпосередньо, щоб довести, що ще мають бути інші числа.

До речі, якщо алгоритм має (кінцеві) аргументи, ви можете просто переписати це як "довший" список програм, де для кожної програми немає аргументів.

Що стосується Вашого коментаря "Що робити, якщо реальні числа дозволені як аргумент", то припущення питання неправильне: усі числа в R можуть бути згенеровані. Якщо хтось знайде число, скажімо, 皮 і стверджує, що його неможливо обчислити, у нас є такий "алгоритм":

func(number):
    return number

і зателефонувати func (皮)


17

Насправді це набагато простіше. Існує лише лічильна кількість алгоритмів. І все ж є незліченна кількість справжніх чисел. Тож якщо ви спробуєте їх з’єднати, деякі реальні цифри залишаться висячими.



1

Цифра - це нескінченно довге число, яке після десяткової крапки кодує будь-які всі машини, що не спрацьовують. За допомогою цього числа ви зможете вирішити проблему зупинки.

Ви можете «шукати» ТМ за номером і запускати його паралельно. Якщо TM зупиняється, вона зупиняється. Якщо ні, то ви "знайдете його код у номері".

Існує багато модифікацій доказів, і ви повинні мати можливість їх відтворити після першого уроку складності :-)



ага, бутон набагато простіше зрозуміти ...
смер28

-2

Точка рухається по контуру функцією y = 2x. Коли абсциса - це не обчислюване число, точка не може обчислити свій шлях, але ми знаємо, що це продовжується. Так що не обчислювані числа можуть взагалі існувати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.