Изменения

Перейти к: навигация, поиск

Разрешимые (рекурсивные) языки

617 байт добавлено, 13:59, 12 января 2015
Нет описания правки
Другими словами, ''универсальный язык'' {{---}} это язык всех таких пар "программа и её вход", что программа на входе возвращает <tex>1</tex>.
Так как в теории вычислимости нету структур данныхРассмотрим данное определение более детально, то для представления программы и её входных данных можно использовть число видачего докажем вспомогательную лемму:
<tex>2^{\text{code}} * 3^{\text{input}}</tex>, где <tex>code, \ input</tex> {{---}} есть Лемма|statement=Существует биекция между текстом программы, текстом входных данных строками и натуральным числом (например, можно занумеровать натуральными числами.|proof=Приведем пример такой биекции: Занумеруем подряд все строки длинны <tex>1</tex>, затем все строки длинны <tex>2</tex> и так далее {{---}} нумерация названий столбцов в <tex>Excel</tex>), таким образом, каждому натуральному числу соответствует некоторая строка и наоборот. }} Биекция между строками и натуральными числами нам нужна, чтобы передавать пары "текст программы, текст входных данных" в качестве аргументов функций. Передавать можно в следующем виде:  <tex>2^{\mathrm{code}} \cdot 3^{\mathrm{input}}</tex>, где <tex>code, \ input</tex> {{---}} есть натуральные числа, соотвествующие тексту программы и тексту входных данных соответственно.
Далее считаем, что входные данные программы и сама программа расположены над одним алфавитом <tex>\Sigma</tex>.
Множество всех рациональных чисел, меньших числа <tex>e</tex> (основания натуральных логарифмов) или <tex>\pi</tex>, разрешимо.
|proof=
Для чисел <tex>e, \ \pi</tex> существуют различные техники нахождения их точного представления, одна их которых описана в статье<ref>[http://www.mathpropress.com/stan/bibliography/spigot.pdf статье«A Spigot Algorithm for the Digits of Pi»]</ref>, таким образом, возможно получить необходимый знак чисел <tex>e, \ \pi</tex> за конечное время.
Десятичное представление рационального числа <tex>r</tex> может быть получено с любой точностью.
'''return''' 0
'''for''' (i = 1 .. <tex>\infty </tex>)
'''if''' (getDigit(<tex>e</tex>, i) > getDigit(<tex>r</tex>, i)) <font color="green">// getDigit {{---}} функция, которая получает i-ый бит ую цифру вещественной части переданного числа</font>
'''return''' 1
'''if''' (getDigit(<tex>e</tex>, i) < getDigit(<tex>r</tex>, i))
Из предположения о разрешимости универсального языка мы пришли к противоречию.
}}
 
== Примечания ==
 
<references />
== Источники информации ==
* [http://en.wikipedia.org/wiki/Recursive_language Wikipedia — Recursive language]
* [http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA Википедия — Рекурсивный язык]
* [http://www.mathpropress.com/stan/bibliography/spigot.pdf «A Spigot Algorithm for the Digits of Pi»]
[[Категория: Теория формальных языков]]
[[Категория: Теория вычислимости]]
Анонимный участник

Навигация