Читайте учебники внимательней и вдумчивее. В качестве параметра передается не алгоритм, а код алгоритма (программа). Раз алгоритму можно передать на вход любую строку, то можно и его собственную конечную запись.
Вы забываете про передаваемые параметры.
Чтоб некий алгоритм смог установить - остановится ли некий алгоритм или нет, ему ,кроме кода алгоритма, необходимо проанализировать и передаваемый параметр.
Без параметра - данных для анализа недостаточно.
Т.е. алгоритму надо передавать код себя самого и входной параметр для себя самого.
Так вот коды будут совпадать, а вот параметры - различаться.
И никогда не сделать так, чтоб алгоритм смог проанализировать собственный код, с идентичным входным параметром (идентичным для себя и для того алгоритма, что он анализирует).
Если параметры отличаются - то и проблемы остановки не существует.
-- Ср янв 26, 2011 12:50:43 --Этот алгоритм подсчитывает количество байт вовсе не у себя, а у файла.
Хотите получить алгоритм на стандартный вход? Пожалуйста:
Код:
$ cat alg.sh
wc -c
$ ./alg.sh < alg.sh
6
Не вижу никакой модификации - вы считываете с диска все тот же файл.
Нет, я объясню подробнее.
В принципе, можно создать базу данных, с циклической ссылкой.
В ней некий каталог имеет файл-ссылку на самого себя.
Такое можно сделать, но это будет просто ошибочной базой данных (зацикленной).
Вы это тоже пытаетесь сделать (используя вместо ссылки имя файла)
Но такой каталог вы не сможете сделать корректным способом (т.е. в один прием).
Поясняю: вот вы создаете текст кода, в этом тексте вы пишете название файла ,куда собираетесь сохранить ваш код ... но вот тут и возникает проблема: файла то еще не существует (вы еще не успели его записать на диск) - т.е. вы использовали свои "надмировые" знания или ,если угодно, при помощи оракула предсказали будущее и узнали как будет называться ваш файл (получили в каталоге ссылку на него до того как эта ссылка была создана).
И смогли создать циклическую ссылку.
Я не утверждаю, что такое создать принципиально невозможно, я только утверждаю, что это будет некорректно.
-- Ср янв 26, 2011 13:02:08 --В практических вычислениях в первую очередь используются
формулы, определяющие то или иное действительное число. Приближение же
не равно самому числу. К приближениям мы переходим только тогда, когда понимаем, что точное равенство нам не нужно.
Вот пример: "Практическая" задача состоит в том, чтобы найти четвёртую степень от числа
. Если мы возьмём вместо этого числа какое-нибудь приближение, то и ответ получится приближённым:
. Но мы знаем
точный ответ:
.
Да, можно используя другую систему счисления (алгебраическую) получить более точный результат (что вы продемонстрировали).
Я никогда не говорил, что множество рациональных чисел (рациональная система счисления) самая лучшая - я говорил, что она самодостаточная.
Т.е. используя ряды рациональных чисел, вы точно так же получите точный результат (ну разве что может быть 3.(9) , а не 4 - но ведь это одно и то же?).