Теорема о рекурсии — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м
Строка 4: Строка 4:
 
|id=th1
 
|id=th1
 
|about=О рекурсии
 
|about=О рекурсии
|statement=Для <tex>\forall</tex> [[Вычислимые функции|вычислимой функции]] от двух аргументов <tex>V(x, y)</tex> <tex>\exists</tex> [[Вычислимые функции|вычислимая функция]] <tex>r(y) : r(y) = V(r, y).</tex>
+
|statement= Пусть <tex>U</tex> - [[Диагональный_метод|универсальная функция]], <tex>h</tex> - всюду определенная [[Вычислимые_функции|вычислимая функция]]. Тогда найдется такое <tex>n</tex>, что <tex>U_n=U_{h(n)}</tex>
 
|proof=
 
|proof=
Пусть <tex>V(x,y)</tex> - любая вычислимая функция. Напишем программу для r(y).
 
  
<code><font size = "3em">
 
  r(y){
 
      V(x,y) {...}
 
 
      main() {
 
          return V(getSrc(), y)
 
      }
 
 
 
      string getSrc() {
 
          string tmp = getOtherSrc();
 
          return (tmp + "string getOtherSrc() {" + "\n" + "return" + tmp + "\n" + "}";
 
      }
 
 
 
      string getOtherSrc() {
 
          return /* весь код до функции getOtherSrc() */
 
      }
 
  }
 
</font></code>
 
 
}}
 
}}
'''Замечание:''' Если бы требовалось написать программу, выводящую свой код, это можно было бы сделать в соответствии со следующей неформальной инструкцией:
 
  
Напечатать два раза, второй раз в кавычках, такой текст: "Напечатать два раза, второй раз в кавычках, такой текст:"
 
  
 
==Источники==
 
==Источники==
 
Н. К. Верещагин,  А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. -- М.: МЦНМО, 1999
 
Н. К. Верещагин,  А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. -- М.: МЦНМО, 1999

Версия 09:27, 29 декабря 2011

Теорема о рекурсии

Говоря неформально, теорема о рекурсии позволяет утверждать, что любая программа может использовать внутри себя свой исходный код (номер), который ей передали в качестве параметра.

Теорема (О рекурсии):
Пусть [math]U[/math] - универсальная функция, [math]h[/math] - всюду определенная вычислимая функция. Тогда найдется такое [math]n[/math], что [math]U_n=U_{h(n)}[/math]


Источники

Н. К. Верещагин, А. Шень. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. -- М.: МЦНМО, 1999