【发布时间】:2016-11-26 06:50:09
【问题描述】:
"如果一种语言是递归的,那么就存在一种方法,通过这种方法,语言中的字符串可以按某种顺序编写" 我还被告知“如果某种语言可以被某个图灵机按字典顺序枚举,那么这种语言称为递归”
首先:这两个语句是否不同? 第二:它应该只是一个字典顺序吗?
【问题讨论】:
标签: computation-theory lexicographic turing-machines
"如果一种语言是递归的,那么就存在一种方法,通过这种方法,语言中的字符串可以按某种顺序编写" 我还被告知“如果某种语言可以被某个图灵机按字典顺序枚举,那么这种语言称为递归”
首先:这两个语句是否不同? 第二:它应该只是一个字典顺序吗?
【问题讨论】:
标签: computation-theory lexicographic turing-machines
回想一下为什么字典顺序对于递归语言的定义是必要的:
因此,如果一台机器只是以任意顺序列举了 L 的单词,您可以检查您的单词 W 是否在该列表中。如果是,你就停下来。如果不是,您必须永远等待,看看您的单词是否最终被机器输出。该语言是递归可枚举的。
如果你知道顺序,你可以评估机器现在是否应该输出W。如果机器输出了一个单词 X,并且根据你知道机器使用的顺序,W 在 X 之前,你知道机器永远不会发出 W,所以你知道 W 不是 L 的成员。
字典顺序是满足您可以判断的属性的单词的许多总排序之一停下来。
其他订单:
https://en.wikipedia.org/wiki/Lexicographical_order#Colexicographic_order
https://en.wikipedia.org/wiki/Kleene%E2%80%93Brouwer_order
所以回答你的具体问题:
这两个语句是否不同?
是的。
第一个语句声明“在某个序列中”,它没有指定序列必须是 L 字母表上的total order。因此,第一种说法是不正确的。第一条语句定义了一种可递归枚举的语言。
第二个陈述是正确的,但比它需要的限制更多。字典顺序只是字母表上的一个总顺序。其他的都可以用。
是否应该只是字典顺序?
没有。
如上所述,只要机器保证按字母表的任何总顺序输出,该语言就是递归的。
【讨论】: