如果集合具有自然数的双射数,则该集合是可计数的;如果存在枚举其成员的算法,则该集合是可计算的(ce)。
由于我们可以从枚举构造双射,因此任何非有限的可计算枚举集都必须是可数的。
是否有一些不可计算的可数集示例?也就是说,存在该集合与自然数之间的双射,但是没有算法可以计算该双射。
如果集合具有自然数的双射数,则该集合是可计数的;如果存在枚举其成员的算法,则该集合是可计算的(ce)。
由于我们可以从枚举构造双射,因此任何非有限的可计算枚举集都必须是可数的。
是否有一些不可计算的可数集示例?也就是说,存在该集合与自然数之间的双射,但是没有算法可以计算该双射。
Answers:
有没有不可枚举的可数集的示例?
是。自然数的所有子集都是可数的,但并非所有数字都是可数的。(证明:子集数量众多, 但图灵机可以用作枚举器的数量却不计其数。)因此,您已经知道不可递归枚举的N的任何子集 就是一个例子–例如所有编码图灵的数字的集合每次输入停止的机器。
是的,每种不确定(非决定性)语言都具有此属性。
例如,考虑集合。
假设我们有一种算法可以枚举此集合的成员。如果存在这样的算法,我们可以使用以下算法来解决输入的停止问题:
停止或不停止 x。如果它停止,最终我们将在达到停止状态的位置找到 n。如果它没有停止,那么最终我们将在枚举中达到(M ,x )。
因此,我们有一个约简,我们可以得出结论,不存在这种枚举。
请注意,此类枚举可存在于半确定性问题中。例如,您可以通过枚举步后枚举所有Turing Machine执行的所有可能轨迹来枚举所有暂停机器输入对的集合,并过滤掉未处于暂停状态的机器。
在可计算性理论,我们处理的子集,其中Σ = { 0 ,1 }。这种语言是可数无穷的,所以任何集大号⊆ Σ *是可数的。此外,有许多不确定的但递归可枚举的语言,其补语不可递归可枚举。这些语言是∑ ∗的子集,因此是可数的。