所有图灵机的集合都是可数的,而所有无限二进制序列的集合是不可数的

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】:

听起来你在问康托尔的对角线论证。给定一组无限序列,您可以制作一个不在该集合中的序列。

这与你不能计算无理数的论点非常相似。鉴于该集合由数字/字符串/等组成,您将始终能够制作不在集合中的数字。是无限长的。

我认为您的论点中最大的缺陷是您说“我找到了每个长度的所有组合”,但考虑到您允许字符串具有无限长度,这是不可能的。

【讨论】:

有道理!因为序列的长度是无限的。

以上是关于所有图灵机的集合都是可数的,而所有无限二进制序列的集合是不可数的的主要内容,如果未能解决你的问题,请参考以下文章

如何证明所有两个参数函数的集合不可数

证明:有理数是可数的,而实数是不可数的。

可数与不可数

集合论:无穷集合及其基数

编译原理 四

随想关于图灵机