如何确定


130

我们进行了以下练习。

f(n)={10n occurs in the decimal representation of π0else

证明是可计算的。f

这怎么可能?据我所知,我们不知道是否包含数字的每个序列(或哪个序列),并且算法当然不能确定某个序列没有发生。因此我认为f是不可计算的,因为根本的问题只能是半确定的。πf


32
原谅我完全无知,我显然错过了这个问题的一些基本要点,但是0 ^ n是否总是为0?由于如果pi为0,则由于第32位小数,这是否意味着f(n)总是返回1?
科里·克莱恩

68
nna5=aaaaa0

Answers:


133

只有两种可能性要考虑。

  • n0nπ

  • N0NπN

    Zeros-in-pi(n):
     if (n > N) then return 0 else return 1
    

Nnπ


请注意与gallais提出的以下证明草图的细微差别:

  1. 拿一个随机的图灵机和一个随机的输入。
  2. 计算要么永远进行下去,要么就在某个时刻停止,并且有一个(常数)可计算函数来描述这些行为中的每一个。
  3. ???
  4. 利润!

亚历克斯·十·布林克解释说:

请注意暂停定理指出的内容:它说没有一个程序可以决定给定程序是否暂停。您可以轻松地编写两个程序,以便其中一个计算给定程序是否暂停:第一个总是说“停止”,第二个总是不停止-一个程序总是正确的,我们无法计算哪个其中是!

sepp2k添加:

在Alex的示例中,两种算法都不会为所有输入返回正确的结果。在这个问题的情况下,其中一个会。您可以声称问题是可以判定的,因为您知道有一种算法可以为所有输入产生正确的结果。您是否知道该算法是哪一个都没有关系。10


评论不作进一步讨论;此对话已转移至聊天
吉尔斯2015年

12
如果有人证明“对于每个正整数n,字符串0 ^ n出现在π的十进制表示中”是不可证明的,那会发生什么?尽管无法构造出正确的算法,我们仍然可以说这个问题是可以判定的吗?
其他人

4
@Others是的,我们会的。
JeffE

1
@JeffE好吧。直觉逻辑有可能证明吗?还是这里需要排除中间法则?
其他人

NMN

14

只是对JeffE的答案稍作阐述。

我们知道存在两个可以计算函数f(n)的函数/情况:

  1. 始终返回true的函数(对于所有n,存在n个连续的0)
  2. 如果n小于整数N,则返回true的函数,其中N定义为给定无理数中存在的连续0的最大长度(否则返回false)。

这些功能中只有一种是正确的。我们不知道哪个,但是我们肯定知道答案。可计算性要求存在一个可以在有限的步骤内确定答案的函数。

情况1的步数被琐碎地绑定为仅返回1。

NTN(n)n<NNNTN(n)n<N

尽管可能无法在这两种情况之间进行选择(尽管似乎比另一种情况更有可能),但我们知道其中一种情况必须正确。

附带说明:我们的解决方案假设,虽然我们无法确定哪个函数会得出正确的值,但可计算性的本质并不依赖于证明的可构造性。纯粹的存在就足够了。


9
并非所有的数学家都接受这一点-例如直觉主义者不接受。
reinierpost

P¬P

5

以下证明尝试的步骤5是不合理的,实际上是错误的 -在此处可以找到反例。(感谢Yuval;它确实感觉像是草图中最粗略的部分)。我把答案留在这里,因为我认为错误是有启发性的。


首先,JeffE的答案就足够了;f是可计算的。


π
π
π

π
π


10
ππ

1
啊,归纳式飞跃的危险:P好的,谢谢。
Stephen Voris 2014年

1
顺便说一句,如果结论是错误的,那么对我来说删除它还是留下它并通过编辑确认它是错误的更有意义吗?
Stephen Voris 2014年

4
πbb

2
@DavidRicherby大开放问题,您说呢?是的,很高兴知道。我确实认为这是一个合理的教育错误,因为关于OP的问题所基于的问题有多棘手的证据是-很明显,考虑到投票否决,我对此也可能是错误的。
Stephen Voris 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.