数据结构与算法分析笔记-前置知识

背景

这部分内容是我学习 数据结构与算法分析 java语言描述的学习笔记,希望对大家有帮助。


数学知识复习

指数相关

  • XAXB=XA+B

  • $ frac{XA}{XB} $=XA-B

  • (XA)B​ = XAB

  • XN + XN= 2XN

  • 2N + 2N = 2N+1

对数相关

  • logA B = $ frac{logc B}{logc A} $
  • log AB = log A + log B
  • log A/B = log A - log B
  • log AB =B(log A)

级数相关

几何级数
  • $ sum_{i=0}{N}{2i} $ = 2N+1 -1
  • $ sum_{i=0}{N}{Ai} $ = AN+1-1/(A-1)
  • 若 0$ leq$ A $leq$ 1, $ sum_{i=0}{N}{Ai} $ $leq$ $ frac{1}{1-A} $
算数级数
  • $ sum_{i=0}^{N}{i} $ = $ frac{N(N+1)}{2} $
  • $ sum_{i=0}{N}{i2} $ = $ frac{N(N+1)(2N+1)}{6} $

模运算

  • 如果A模N和B模N可以得到相同的余数,这样表示:A $ equiv $ B (mod N)
  • 如果有 A $ equiv $ B (mod N)
    • A + C $equiv$ B + C (mod N)
    • AD $equiv$ BD (mod N)

证明方法

归纳法证明

归纳法证明可以分下面几步:

  1. 基准证明:确定定理对于小的值的正确性
  2. 归纳假设:假设定理对于某个有限数k是成立的
  3. 使用归纳假设的定理,证明对k+1也是成立的

由此定理得证

例子:证明斐波那契数列,对于i $geq$ 1,都有Fi < (5/3)i 成立

下面按照上面学习的步骤来证明

基准假设:对于i=1,i=2,都有F1 = 1 < (5/3)1 和 都有F2 = 2 < (5/3)2 成立

归纳假设:假设对于有限数k,都有Fk < (5/3) K成立

最后证明:

已知Fk+1 = Fk + Fk-1 ,代入第二步的假设定理

最后化简 Fk+1 < (24/25)(5/3) k+1 < (5/3) k+1

反证法

反证法的证明过程:

  1. 先假设要证明的定理不成立
  2. 证明该假设导致某个已知的性质不成立
  3. 推断原假设是错误的。

例子:证明存在无穷多个素数。

下面按照上面的步骤证明

假设定理不成立,那么有最大的素数Pk,以构造一个自然数M,另M=P1P2P3...Pk+1

显然M不能够被P1P2...Pk整除,总会余1,由此可以推断

  • 要么M是一个素数
  • 要么M是一个合数,任意一个整数要么是素数,要么是素数的乘积,那么肯定有不在P1P2...Pk这个集合外的素数存在,使得M可以被那个素数整除

和已知假设矛盾,所以可以得证,存在无穷多个素数。

附录

typora数学公式语法示例

神奇的素数

原文地址:https://www.cnblogs.com/ging/p/13468760.html