所有图灵机的集合都是可数的,而所有无限二进制序列的集合是不可数的
Posted
技术标签:
【中文标题】所有图灵机的集合都是可数的,而所有无限二进制序列的集合是不可数的【英文标题】:The Set of All Turing Machines is Countable vs the set of all infinite binary sequences is uncountable 【发布时间】:2017-05-03 20:42:19 【问题描述】:试图为期末考试而学习,却对可数性感到困惑。
我知道任何图灵机都可以描述为字符串。我们有有限数量的输入 (Σ)。我们可以计算每个长度的字符串组合。
假设有 256 个不同的输入符号。
对于字符串长度为1:256的组合。
对于长度为 2 的字符串:我们有 256^2 种组合。
对于 k 的字符串长度,我们有 256^k 个组合。
然后我们对所有这些组合进行编号。
1, 2 ... 256, 257, 258 ... 256 + 256^2 ...
由于自然数是可数的,因此存在双射映射。所以所有图灵机的集合都是可数的。
我的问题是为什么我不能对所有无限二进制序列做同样的事情?我找到每个长度的所有组合,给它们编号,然后我会得到一个双射映射。
非常感谢!
【问题讨论】:
你证明了有限二进制序列的集合是可数的。这与显示无限二进制序列集是可数的不同。 我投票结束这个问题,因为它不是一个编程问题。 【参考方案1】:听起来你在问康托尔的对角线论证。给定一组无限序列,您可以制作一个不在该集合中的序列。
这与你不能计算无理数的论点非常相似。鉴于该集合由数字/字符串/等组成,您将始终能够制作不在集合中的数字。是无限长的。
我认为您的论点中最大的缺陷是您说“我找到了每个长度的所有组合”,但考虑到您允许字符串具有无限长度,这是不可能的。
【讨论】:
有道理!因为序列的长度是无限的。以上是关于所有图灵机的集合都是可数的,而所有无限二进制序列的集合是不可数的的主要内容,如果未能解决你的问题,请参考以下文章