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

Материал из Викиконспекты
Перейти к: навигация, поиск
м
м
Строка 8: Строка 8:
  
 
<code><font size = "3em">
 
<code><font size = "3em">
  01: r(y) {
+
  01: r(y){
  02:   V(x,y);
+
  02:     V(x,y);
  03:   main() {
+
  03:
  04:       return V(getSrc(), y)
+
04:    main() {
  05:   }
+
  05:         return V(getSrc(), y)
  06:   string getSrc() {
+
  06:     }
  07:       string tmp = getOtherSrc();
+
  07:
  08:       return (tmp + "string getOtherSrc() {" + \n + "return ... " + tmp + "}";
+
08:     string getSrc() {
  09:   }
+
  09:         string tmp = getOtherSrc();
  10:   string getOtherSrc() {
+
  10:         return (tmp + "string getOtherSrc() {" + \n + "return ... " + tmp + "}";
  11:       return /* строки с 01 по 09 */
+
  11:     }
  12:   }  
+
  12:
  13: }
+
13:     string getOtherSrc() {
 +
  14:         return /* строки с 01 по 12 */
 +
  15:     }  
 +
  16: }
 
</font></code>
 
</font></code>
 
}}
 
}}

Версия 06:25, 8 декабря 2010

Эта статья находится в разработке!
Теорема (О рекурсии):
Для [math]\forall[/math] вычислимой функции от двух аргументов [math]V(x, y)[/math] [math]\exists[/math] вычислимая функция [math]r(y) : r(y) = V(r, y).[/math]
Доказательство:
[math]\triangleright[/math]

Пусть [math]V(x,y)[/math] - любая вычислимая функция. Напишем для нее r(y).

01: r(y){
02:     V(x,y);
03:
04:     main() {
05:         return V(getSrc(), y)
06:     }
07:
08:     string getSrc() {
09:         string tmp = getOtherSrc();
10:         return (tmp + "string getOtherSrc() {" + \n + "return ... " + tmp + "}";
11:     }
12: 
13:     string getOtherSrc() {
14:         return /* строки с 01 по 12 */
15:     } 
16: }
[math]\triangleleft[/math]