【问题标题】:Prove that the set of all languages over a finite alphabet is uncountable证明有限字母表上所有语言的集合是不可数的
【发布时间】:2011-06-06 21:09:20
【问题描述】:

试图做一些修改,但不确定这一点:

证明有限字母表上所有语言的集合是不可数的。

我感觉它需要使用 Cantor Diagonalization 方法 - 但我不确定你将如何使用它来解决这个问题。

【问题讨论】:

  • 这可以通过荒谬的方式来证明......虽然不记得具体是怎么回事
  • n>1 有必要吗?我不认为 1 个字母语言是不可数的。

标签: computation-theory countable


【解决方案1】:

我在计算理论课上发现了这个证明,希望对你有用

|N|

假设 |N| >= |语言(N)|。因此,languages(N) 的每一个元素都可以与 N 的一个元素相关联。所以它们可以被排序:

语言(N) = {S_1 , S_2, S_3, ...}

我们定义一个像这样的集合 D:

D = {n in N / n not in S_n}

D 有效且 D 是 N 的子集,因此 D 属于语言 (N)。 因此,必须存在一个k,其中 D = S_k

1) 如果k属于D,那么根据D的定义,k不属于S_k。而 k 不属于 D 因为 D = S_k(我们发现矛盾)

2) 如果 k 不属于 D 那么:k 属于 S_k(根据 D 的定义)并且 k 属于 D 因为 D = S_k(又是矛盾)

不可能存在像假设那样的序列。因此,为语言(N)的每个元素分配 N 元素的单射函数是不可能的。结论 |languages(N)| ! |N|

【讨论】:

  • 为什么“因此 D属于语言(N)”?
猜你喜欢
  • 1970-01-01
  • 2020-07-11
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
  • 2011-06-06
  • 2017-05-03
  • 1970-01-01
  • 2019-10-07
相关资源
最近更新 更多