【问题标题】:The Art of Computer Programming (2nd ed.): Mathematical Induction [closed]计算机编程艺术(第 2 版):数学归纳 [关闭]
【发布时间】:2013-03-15 08:10:38
【问题描述】:

在 1.2.1 数学归纳部分中,Knuth 将数学归纳呈现为一个两步过程,以证明 P(n) 对于所有正整数 n 都是正确的:

a) 证明 P(1) 为真;

b) 证明“如果所有 P(1), P(2),..., P(n) 为真,则 P(n+1) 也为真”;

我对此表示严重怀疑。事实上,我认为 b) 点应该是:

b) 证明“如果 P(n) 为真,则 P(n+1) 也为真”。这里的主要区别是您只是假设 P(n) 为真,而不是 P(n-1) 等。

不过,这些书很旧,很多人都读过(他们中的大多数人都比我聪明得多^^)。

那么我的困惑是什么?

【问题讨论】:

  • 如果n 是任意的并且P(1) ... P(n) 是真的,那么你不能说k = n + 1,所以按照前面的说法,P(1)。 .. P(k) = P(1) ... P(n + 1) 也成立?
  • 也许是math.stackexchange.com的问题?
  • 可能是math.stackexchange 的问题?虽然,参考来自计算机科学。
  • 有两种典型的归纳方法。您使用的版本通常称为“弱感应”或仅称为“感应”,而 Knuth 使用的是“完全感应”或“强感应”。两者是等价的。
  • @blender:是的,这是我的观点。 Knuth 则反其道而行之。证明 P(n) => P(n+1) 证明 P(1)..P(n) 为真。说明 P(1)...P(n) 是真的,但实际上并没有证明它对我来说似乎太强了;)

标签: taocp


【解决方案1】:

这里的重点是n 的选择是任意的。由于P(n) 暗示P(n+1) 是归纳的基石,那么在P(n) 的假设下,1 和n 之间的所有中间值也将成立。你应该证明如果P(0) 暗示P(1)P(n) 暗示P(n+1) 那么所有 条件由n 的性质保持是任意的。

【讨论】:

  • 是的,这是我的观点。但是根据 Knuth 的定义,您必须在证明 P(n) => P(n+1) 之前证明 P(1)...P(n) 成立。对?否则,说明 P(1)...P(n) 为真已经解决了问题,因为很容易根据 P(1)..P(n) 来说明 P(n+1)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
  • 1970-01-01
  • 2010-10-08
  • 2013-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多