循环不变式、数学归纳法、归纳推理和演绎推理学习总结

循环不变式、数学归纳法和归纳推理从不同层次描述了知识发现的三种方式,这些方式既一脉相承又有所区别,本文希望能对其异同进行分析。

1、从归纳推理与演绎推理说起
      根据辞海定义,归纳推理(inductive reasoning)是一种“从包含特殊性知识的前提推出包含一般性知识的结论的推理。这里所说的特殊和一般都是相对而言的。完全归纳推理和科学归纳推理是必然性推理,简单枚举归纳推理则是或然性推理。”简单来说,归纳推理即从特殊性知识得到一般性知识,例如著名的“全世界所有的乌鸦都是黑的”,归纳推理从结论性质又可以分为必然性推理和或然性推理,必然性推理是说推理结果必然正确,或然性推理即结论不一定正确,或结论具有一定概率性(一部分对象可能正确,另一部分可能不正确)。必然性推理包括完全归纳推理和科学归纳推理,或然性推理指简单枚举归纳推理。
      演绎推理(deductive reasoning)与归纳推理正好相反,是一种“从包含一般性知识的前提推出包含特殊性知识的结论的推理。”演绎推理的结论具有必然性,主要有三段论、假言推理、选言推理等形式。
      总结一下,归纳推理是从特殊知识到一般知识的论证方法,根据具体方法,结论可能正确可能不正确。演绎推理是从一般知识到特殊知识的论证方法,结论必然正确。归纳与演绎是人类认识的基本方式。直白点说,人类知识的源头就是他们。而数学归纳法就属于演绎推理,因此,数学归纳法的结论具有必然性。
2、数学归纳法和循环不变式的关系
      数学归纳法是数学上证明与自然数n有关的命题的一种方法。必须包括两步:
      (1)验证当n取第一个自然数值n_0(如1,2等)时,命题正确;
      (2)假设当n取某一自然数k时命题正确,以此推出当n=k+1时这个命题也正确。从而就可断定命题对于从n_0开始的所有自然数都成立。
      由此可知,数学归纳法的研究对象是自然数整体(0,1,2,...)有关命题,结论具有必然性。
      循环不变式(loop invariant)属于计算机科学的概念,它是指某段程序循环在循环前后该段程序的某种性质(通常指程序的正确性)保持不变。其分为三步:
    (1)初始化(循环第一次迭代之前)的时候,A[1‥ j -1]的“有序性”是成立的;
    (2)在循环的每次迭代过程中,A[1 ‥j -1]的“有序性”仍然保持;
    (3)循环结束的时候,A[1 ‥ j-1]的“有序性”仍然成立。
     容易看出,数学归纳法和循环不变式既有相同点也有不同点。
     相同点:都属于演绎推理;论证方法相似,都是在以初始结论成立为前提推理下一步结论成立。
     不同点:数学归纳法针针对无限循环的自然数,循环不变式针对有限的循环迭代;前者分为两步,后者三步;前者应用范围更广,后者是前者在计算机科学领域的延伸。



你可能感兴趣的:(循环不变式、数学归纳法、归纳推理和演绎推理学习总结)