有人可以解释数学归纳来证明递归方法吗?我是一名新生计算机科学专业的学生,我还没有学过微积分(我已经通过Trig了)。我有点理解它但是当我被要求为递归方法写出感应证明时我会遇到麻烦。
答案 0 :(得分:10)
以下是一个例子的解释:
假设您有以下要证明的公式:
sum(i | i <- [1, n]) = n * (n + 1) / 2
此公式为1
和n
之间的所有整数之和提供了一个封闭形式。
我们首先要证明n = 1
的简单基本情况的公式。在这种情况下,公式的两边都减少到1
。这反过来意味着该公式适用于n = 1
。
接下来,我们将证明如果公式适用于值n
,则它适用于n
(或n + 1
)的下一个值。换句话说,如果满足以下条件:
sum(i | i <- [1, n]) = n * (n + 1) / 2
然后以下情况也是如此:
sum(i | i <- [1, n + 1]) = (n + 1) * (n + 2) / 2
为此,让我们从最后一个公式的第一面开始:
s1 = sum(i | i <- [1, n + 1]) = sum(i | i <- [1, n]) + (n + 1)
也就是说,1
和n + 1
之间的所有整数之和等于1
和n
之间的整数之和加上最后一项{{1 }}
由于我们基于公式适用于n + 1
的条件而基于此证明,我们可以写:
n
正如你所看到的,我们已经到达了我们试图证明的公式的第二个方面,这意味着公式确实存在。
这完成了归纳证明,但它究竟意味着什么?
s1 = n * (n + 1) / 2 + (n + 1) = (n + 1) * (n + 2) / 2 = s2
的公式正确,则n
正确。从1和2,我们可以说:如果公式对于n = 0是正确的,那么它对n + 1
是正确的。由于我们证明了0 + 1 = 1
的情况,因此n = 0
的情况确实是正确的。
我们可以再次重复上述过程。 n = 1
的情况是正确的,那么n = 1
的情况是正确的。这种推理可以无限制地发挥作用;公式对于n> = 1的所有整数值都是正确的。
答案 1 :(得分:9)
感应!=计算!!!
我可以让N个人喝10 * N啤酒。
基础案例:1个人
我可以让一个人喝10杯啤酒
诱导步骤,给定p(n)证明p(n + 1)
我可以让我喝醉了10 * i啤酒,如果我添加另一个人,我可以让他喝10杯啤酒。因此,我可以让i + 1个人喝10 *(i + 1)啤酒。
p(1) - &gt; p(i + 1) - &gt; p(i + 2)... p(inf)
离散数学很容易!
答案 2 :(得分:0)
首先,您需要一个基本案例。然后你需要一个归纳步骤,适用于某些步骤n。在归纳步骤中,您需要一个归纳假设。这个假设是你需要做出的假设。最后,使用该假设来证明步骤n + 1