Нам дали следующее упражнение.
Позволять
Докажите, что вычислимо.
Как это возможно? Насколько я знаю, мы не знаем, содержит ли каждую последовательность цифр (или какую), и алгоритм определенно не может решить, что какая-то последовательность не встречается. Поэтому я думаю, что не вычислимо, потому что основная проблема только разрешима.
computability
undecidability
Рафаэль
источник
источник
Ответы:
Есть только две возможности для рассмотрения.
Для каждого положительного целого числа строка появляется в десятичном представлении . В этом случае алгоритм, который всегда возвращает 1, всегда верен.n 0n π
Существует наибольшее целое число такое, что появляется в десятичном представлении . В этом случае следующий алгоритм (со значением жестко запрограммирован) всегда корректен:N 0N π N
Мы понятия не имеем, какая из этих возможностей является правильной или какое значение является правильным во втором случае. Тем не менее, один из этих алгоритмов гарантированно будет правильным. Таким образом, существует алгоритм, позволяющий решить, появляется ли строка из нулей в ; проблема разрешимаN n π
Обратите внимание на небольшую разницу со следующим эскизом, предложенным Галле :
Алекс тен Бринк объясняет:
sepp2k добавляет:
источник
Просто опубликовать небольшую детализацию ответа Джеффа.
Мы знаем, что существуют две функции / случаи, которые могут вычислить функцию f (n):
Одна и только одна из этих функций может быть правильной. Мы не знаем, какой, но мы точно знаем, что ответ существует. Вычислительность требует наличия функции, которая может определить ответ за конечное количество шагов.
Количество шагов в случае 1 тривиально связано с просто возвращением 1.
В случае 2 количество шагов также конечно. Для каждого целого числа мы можем построить машину Тьюринга которая принимает, если и иным образом отклоняет ее за конечное время. Так что незнание верхней границы не имеет значения. Для каждого существует машина Тьюринга, а именно , которая правильно вычисляет, является ли (мы не знаем, какие из них являются правильными, но это не имеет значения, существует один).N TN(n) n<N N N TN(n) n<N
Хотя может быть невозможно выбрать между этими двумя случаями (хотя один кажется более вероятным, чем другой), мы знаем, что именно один из них должен быть правильным.
В качестве примечания: наше решение предполагает, что, хотя мы не можем определить, какая функция будет вызывать правильное значение, суть вычислимости не зависит от конструктивности доказательства. Чистого Существования достаточно.
источник
Шаг 5 следующего доказательство попытки неоправданный, и на самом деле неправильно - контрпример можно найти здесь . (спасибо, Юваль; это было похоже на самую скудную часть наброска). Я оставил здесь ответ, так как считаю ошибку поучительной.
Во-первых: пары ответов Джеффа достаточно; f вычислима в любом случае.
Краткий обход, однако, в попытке сделать набросок доказательства по индукции:π
π
π
π будет повторяться с 1 или 0 . Точно так же вы не можете перестать находить 11 или 00 , потому что в противном случае они начинают повторяться на 1010101 ... π
предпосылка R : не повторяется. 1. Посмотрите на в базе 2. Это в основном для сокращения количества дел. 2. Независимо от того , как далеко вниз по линии вы идете, вы всегда найдете еще 1 где: альтернатива не все нули, которые означают , что начинает повторять, что идет вразрез с R . 3. То же самое касается перехода по линии и нахождения 0 . 4. Разверните до двузначных последовательностей: вы не можете перестать находить 01 или 10 (то есть места, где он переключается), потому что иначе
5. Индуктивный шаг: каждая конечная последовательность должна появляться бесконечное число раз, потому что альтернативой является то, что начинает повторяться на одна из более коротких последовательностей, что противоречит R .
источник