Перечислимые языки — различия между версиями
Spolan (обсуждение | вклад) (Новая страница: «{{Определение |definition = Детерминированная машина Тьюринга <tex>\langle Q,\sum,\Gamma,b_0,\Delta,\{q_s\},\{q_a\}\rangle<…») |
Spolan (обсуждение | вклад) м |
||
Строка 1: | Строка 1: | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | + | Перечисляющая программа для языка <tex>L</tex> - программа, по очереди выводящая все слова языка <tex>L</tex>. Если слово принадлежит языку, то программа за конечное время выдаст его на выходе. Слова, не принадлежащие языку, программа выводить не будет. | |
}} | }} | ||
+ | |||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | + | Полуразрешающая программа для языка <tex>L</tex> - программа, которая при подаче на вход слова из языка за конечное время завершится и вернет 1, а при подаче на вход слова не из языка может за конечное время вернуть 0, а может и зависнуть. | |
}} | }} | ||
+ | |||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | + | Перечислимый язык - язык, для которого существует перечисляющая программа. | |
+ | }} | ||
+ | |||
+ | {{Определение | ||
+ | |definition = | ||
+ | Перечислимый язык - язык, для которого существует полуразрешающая программа. | ||
}} | }} | ||
Строка 15: | Строка 22: | ||
|id=th1 | |id=th1 | ||
|statement= | |statement= | ||
− | + | Два определения перечислимого языка эквивалентны. | |
|proof= | |proof= | ||
− | Пусть | + | Пусть имеется перечисляющая программа для языка, построим полуразрешающую. Сделаем это следующим образом. Получаем на вход некоторое слово <tex>w</tex>, запускаем перечисляющую программу. Если в процессе вывода слов встретится <tex>w</tex>, то завершаем работу, вернув 1. Таким образом при подаче на вход слова из языка построенная программа вернет 1 и завершится. Если же мы подадим на вход слово не из языка, то построенная программа будет работать бесконечно долго, что вполне устраивает. Таким образом полуразрешающая программа построена. |
+ | |||
+ | Теперь пусть имеется полуразрешающая программа для языка, построим перечисляющую. | ||
}} | }} |
Версия 22:35, 1 декабря 2010
Определение: |
Перечисляющая программа для языка | - программа, по очереди выводящая все слова языка . Если слово принадлежит языку, то программа за конечное время выдаст его на выходе. Слова, не принадлежащие языку, программа выводить не будет.
Определение: |
Полуразрешающая программа для языка | - программа, которая при подаче на вход слова из языка за конечное время завершится и вернет 1, а при подаче на вход слова не из языка может за конечное время вернуть 0, а может и зависнуть.
Определение: |
Перечислимый язык - язык, для которого существует перечисляющая программа. |
Определение: |
Перечислимый язык - язык, для которого существует полуразрешающая программа. |
Теорема: |
Два определения перечислимого языка эквивалентны. |
Доказательство: |
Пусть имеется перечисляющая программа для языка, построим полуразрешающую. Сделаем это следующим образом. Получаем на вход некоторое слово Теперь пусть имеется полуразрешающая программа для языка, построим перечисляющую. , запускаем перечисляющую программу. Если в процессе вывода слов встретится , то завершаем работу, вернув 1. Таким образом при подаче на вход слова из языка построенная программа вернет 1 и завершится. Если же мы подадим на вход слово не из языка, то построенная программа будет работать бесконечно долго, что вполне устраивает. Таким образом полуразрешающая программа построена. |