【计算机科学的数学基础】归纳法

数学归纳法

有时候需要证明如下的命题:

P ( n ) P(n) P(n)对于某个范围的所有整数n都成立

要证明这样的命题就需要归纳法。
归纳法主要分2步:

  • 基底的证明:证明对于该范围中的最小的整数 i i i,该命题成立
  • 归纳的证明:证明对于 i i i以上的任何整数 k k k,“若 P ( k ) P(k) P(k)成立,则 P ( k + 1 ) 也成立 P(k+1)也成立 P(k+1)也成立

求奇数的和

试证明: 命题 P ( n ) P(n) P(n) 1 + 3 + 5 + 7 + ⋯ + ( 2 × n − 1 ) = n 2 1+3+5+7+ \cdots +(2 \times n-1)=n^2 1+3+5+7++(2×n1)=n2对于1以上的所有整数 n n n都成立。

  • 步骤1:基底的证明
    P ( 1 ) = 1 2 P(1)=1^2 P(1)=12, P ( 1 ) P(1) P(1)成立
  • 步骤2:归纳的证明
    假设对于任何整数 k ≥ 1 k \geq 1 k1 P ( k ) P(k) P(k)成立,即
    1 + 3 + 5 + 7 + ⋯ + ( 2 × k − 1 ) = k 2 1+3+5+7+ \cdots +(2 \times k-1)=k^2 1+3+5+7++(2×k1)=k2
    P ( k + 1 ) = P(k+1)= P(k+1)=
    1 + 3 + 5 + 7 + ⋯ + ( 2 × k − 1 ) + ( 2 × ( k + 1 ) − 1 ) = k 2 + ( 2 × ( k + 1 ) − 1 ) = k 2 + 2 × k + 2 − 1 = k 2 + 2 × k + 1 = ( k + 1 ) 2 1+3+5+7+ \cdots +(2 \times k-1)+(2 \times (k+1)-1) \\ =k^2+(2 \times(k+1)-1) \\ = k^2 + 2 \times k + 2 -1 \\ = k^2 + 2 \times k + 1 \\ = (k+1)^2 1+3+5+7++(2×k1)+(2×(k+1)1)=k2+(2×(k+1)1)=k2+2×k+21=k2+2×k+1=(k+1)2
    也成立。
    由步骤1,步骤2可证对于任何1以上的所有整数 n n n,都有 1 + 3 + 5 + 7 + ⋯ + ( 2 × n − 1 ) = n 2 1+3+5+7+ \cdots +(2 \times n-1)=n^2 1+3+5+7++(2×n1)=n2

归纳法与编程中的循环

程序中的循环不变式相当于数学归纳法中证明命题 P ( n ) P(n) P(n)

例如,对数组arr中的所有数求和:

int sum = 0;
for( int i = 0; i < arr.size(); i++){
	sum = sum + arr[i]
}

循环中不变的是循环体内的sum = sum + arr[i],换成数学语言就是:

对于任意 0 ≤ i ≤ a r r . s i z e ( ) 0 \leq i \leq arr.size() 0iarr.size(),数组arr中的前 i i i个元素的和都等于变量 s u m sum sum的值

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值