前言
近日淘到一本不可多得的好书,开篇便是扎实数学功底。所以本篇就来推导一些算法抉择必备的数学功底,不然哪套算法好,好在哪里,也说不出个所以然来,空口无凭,公式说话!
1、指数
XAXB=XA+B
XA/XB=XA−B
(XA)B=XAB
XN+XN=2XN=X2N
2N+2N=2N+1
2、对数
在计算机科学中,除非有特殊申明,不然所有对数都是以2为底的,心照不宣。
定理1:XA=B,当且仅当logXB=A
定理2:logAB=logCB/logCA;(C>0)
证明:令X=logCB,Y=logCA,Z=logAB。∴B=CX,A=CY,以及AZ=B∴(CY)Z=CX=B。∴X=YZ,∴Z=X/Y
定理3:logAB=logA+logB
证明:令X=logA,Y=logB,Z=logAB。此时由于默认底为2,2X=A,2Y=B,以及2Z=AB。∴X+Y=Z,这就证明了该定理。
还有一些有用的公式如下,它们都可以用类似的方法推导:
log(A/B)=logA−logB
log(AB)=BlogA
logX<X(X>0)
log1=0,log2=1,log1024=10
3、级数
最容易记忆的公式是:
i=0∑N2i=2N+1−1
i=0∑NAi=(AN+1−1)/A−1
在第二个公式中,如果0<A<1,则
i=0∑NAi⩽1/(1−A)
推导公式2:
令S表示和,此时:
S=1+A+A2++A3+……
于是:
AS=A+A2+A3+A4+……
两式相减,得:
S−AS=1
∴S=1/(1−A)
公式1是公式2的特化。
高斯公式:
i=0∑Ni=N(N+1)/2≈N2/2