• 数据结构与算法分析-引论


    数学知识复习

    指数

    XAXB=XA+BX^AX^B=X^{A+B}

    XAXB=XABfrac{X^A}{X^B}=X^{A-B}

    (XA)B=XAB(X^A)^B=X^{AB}

    XN+XN=2XNX2NX^N+X^N=2X^N eq X^{2N}

    对数

    在计算机科学中,除非有特别的声明,所有的对数都是以2为底的。

    定义:XA=BX^A=B,当且仅当logXB=Alog_XB=A

    定理1.1

    logAB=logCBlogCAlog_AB=frac{log_CB}{log_CA}

    定理1.2

    logAB=logA+logBlogAB=logA+logB

    logAB=logAlogBlogfrac{A}{B}=logA-logB

    log(AB)=BlogAlog(A^B)=BlogA

    logX<XX>0logX<X(对于所有X>0成立)

    log1=0,log2=1,log1024=10,log1048576=20log1=0,log2=1,log1024=10,log1048576=20

    级数

    最容易记忆的公式是

    i=0N2i=2N+11sum^N_{i=0}2^i=2^{N+1}-1

    i=0NAi=AN+11A1sum_{i=0}^NA^i=frac{A^{N+1}-1}{A-1}

    在第二个公式中,如果0<A<10<A<1,则

    i=0NAi11Asum_{i=0}^NA^ileq frac{1}{1-A}

    当N趋向infty时该和趋向于11Afrac{1}{1-A},这些公式是“几何级数”公式。

    分析中另一种常用类型的级数是算术级数。任何这样的级数都可以通过基本公式计算其值。

    i=1Ni=N(N+1)2N22sum_{i=1}^Ni=frac{N(N+1)}{2}approxfrac{N^2}{2}

    例如,为求出和2+5+8++(3k1)2+5+8+cdots +(3k-1),将其改写为3(1+2+3++k)(1+1+1++1)3(1+2+3+cdots+k)-(1+1+1+cdots +1),显然,它就是3k(k+1)2kfrac{3k(k+1)}{2-k}。另一种记忆的方法则是将第一项与最后一项相加(和为3k+13k+1),第二项与倒数第二项相加(和也是3k+13k+1),等等。由于有k2frac{k}{2}个这样的数对,因此总和就是k(3k+1)2frac{k(3k+1)}{2},这与前面的答案相同。

    现在介绍下面两个公式,它们就没有那么常见了。

    i=1Ni2=N(N+1)(2N+1)6N33sum_{i=1}^Ni^2=frac{N(N+1)(2N+1)}{6}approxfrac{N^3}{3}

    i=1NikNk+1k+1k1sum_{i=1}^Ni^kapproxfrac{N^{k+1}}{|k+1|}k eq-1

    k1k eq-1时,后一个的公式不成立。此时我们需要下面的公式,这个公式在计算机科学中的使用要远比在数学其他科目中使用得多。数HNH_N叫做调和数,其和叫做调和和。下面近似式中的误差趋向于γ0.57721566gammaapprox0.57721566,这个值被称为欧拉常数(Euler’s constant)。

    HN=i=1N1ilogeNH_N=sum_{i=1}^Nfrac{1}{i}approx log_eN

    以下两个公式只不过是一般的代数运算。

    i=1Nf(N)=Nf(N)sum_{i=1}^Nf(N)=Nf(N)

    i=n0Nf(i)=i=1Nf(i)i=1n01f(i)sum_{i=n_0}^Nf(i)=sum_{i=1}^Nf(i)-sum_{i=1}^{n_0-1}f(i)

    模运算

    如果NN整除ABA-B,那么我们就说A与B模N同余(congruent),记为AB(mod N)Aequiv B(modspace N)

    如同等号的情形一样,若AB(mod N)Aequiv B(modspace N),则A+CB+C(mod N)A+Cequiv B+C(modspace N)以及ADBD(mod N)ADequiv BD(modspace N)

    证明方法

    归纳法证明

    由归纳法进行证明有两个标准的部分。第一步是证明基准情形(base case),就是确定定理对于某个(某些)小的值的正确性。接着,进行归纳假设(inductive hypothesis)。一般来说,这意味着假设定理对直到某个有限数kk的所有的情况都是成立的。至此定理得证(在kk是有限的情形下)。

    通过反例证明

    公式Fkk2F_kleq k^2不成立。证明这个结论的最容易的方法就是计算F11=144>112F_{11}=144>11^2

    反证法证明

    反证法证明是通过假设定理不成立,然后证明假设导致某个已知的性质不成立,从而说明原假设是错误的。

    递归简论

    过程(procedure)即为返回值为void型的函数。

    Xleft lfloor X ight floor意为小于或等于X的最大整数。

    当编写递归例程的时候,关键是要牢记递归的四条基本法则:

    1. 基准情形。必须总有某些基准情形,它无须递归就能解出。
    2. 不断推进。对于那些需要递归求解的情形,每一次递归调用都必须使求解状况朝接近基准情形的方向推进。
    3. 设计法则。假设所有的递归调用都能运行。
    4. 合成效益法则(compound interest rule)。再求解一个问题的同一个实例时,切勿在不同的递归调用中做重复性的工作。
    不一定每天 code well 但要每天 live well
  • 相关阅读:
    linux中文字体
    连接数据库服务器端的几个常见错误
    分布式部署下的报表调用 API调用 权限问题以及性能方案
    报表在IBM AIX系统下resin部署
    ASP.Net与JSP如何共享Session值
    async与await
    从小程序到小程序云开发
    什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC?
    微信小程序知识云开发
    变量的解构赋值
  • 原文地址:https://www.cnblogs.com/geekfx/p/12423072.html
Copyright © 2020-2023  润新知