基础数学

基础数学(数据结构所需基础)-不定期更新中…

文章目录

      • 基础数学(数据结构所需基础)-不定期更新中...
          • 1. 指数
          • 2. 对数
          • 3. 级数
          • 4. 模运算
          • 5. 证明的方法
            • 5.1) 归纳法证明
            • 5.1.1) 基准情形
            • 5.1.2) 归纳假设

1. 指数

例如: X a X b = X a + b X^aX^b = X^a+b XaXb=Xa+b

2. 对数

在计算机科学中,除非有特别声明,否则所有的对数均以2为底
对数公式(四则运算法则):
$loga^(MN) = logaM+logaN $ ,
l o g a ( M / N ) = l o g a M − l o g a N loga^(M/N) = loga^M-loga^N loga(M/N)=logaMlogaN ,
$loga{Mn} = nloga^M $
换底公式: l o g m n = l o g a m / l o g a n logm^n = loga^m/loga^n logmn=logam/logan
换底导出公式 : $ logM^N = -logN^M $
对数恒等式: a ( l o g a M ) = M a^(loga^M) = M a(logaM)=M

对数得来(10 为底数): $ 10^2 = 100 , , ,lg100 = 2$

例(10 为底数):
计算该值: l g 200 − l g 2 lg200 - lg2 lg200lg2
计算过程: l g 200 − l g 2 = l g 200 / 2 = l g 100 = 2 lg200-lg2 = lg200/2 = lg100 = 2 lg200lg2=lg200/2=lg100=2
例(10 为底数):
y=2x,这就是一个次方函数,我们知道25=32,那么现在我想知道的就是32是2多少次方呢?这里就出现了我们提到的log函数,2就是指数函数中的底数,则y=2^x,的逆函数就是x=log2y,因排版原因,log2这个2是写在右下角。
现在知道以2为底数的log了,那不同底数的log按上面的理解就行了。

例如:
l o g A B = l o g c B l o g c A ; A , B , C > 0 , A ≠ 1 , c ≠ 1 logA^B = \frac{logc^B}{logc^A}; A,B,C > 0, A \neq 1, c \neq 1 logAB=logcAlogcB;A,B,C>0,A̸=1,c̸=1
例如:
(1) 求 N ! (1 <= N <= 5000)中有多少位数字。
若直接求 N ! 的结果,然后再计算有多少位数字,也是可行的,因为是大数阶乘,所以要用数组来计算,会用到大量的乘法除法取余运算,时间空间花费都比较大。
用对数的性质来解这个题是最佳的选择。
首先我们知道 看一个数字有多少位就是看它是10的几次幂,如101有2位,102 有3位。
也就是 10x(k=我们要求log10( N ! )

log10( N ! ) = log101 + log102 +  log103 + ... + log10N
int GetDigitsNumInFactorial(int n)
{
    double d = 0.0;
    for(int i = 1; i <= n; i++)
        d += log10(i);
    return int(d)+1;
}

(2) 对一个正整数n (n <= 1,000,000,000)和m (m <= 1,000,000,000)输出n的m次方的最左一位数字。
对于这个题目也是,n的范围这么大,肯定也不能直接去求了。还是利用对数来解决。
令x=log10(nm)=mlog10n,即nm=10x。设x的整数部分为a,小数部分为b,nm=10a10b,对于10的整数次幂10a,第一位是1,所以,nm的第一位数取决于10b。

int GetLeftMostDigitOfMthPower(int n, int m)
{
    double x, a, b;
    x = m * log10(n);
    a = floor(x);
    b = x - a;
    return int(pow(10, b));
}
3. 级数

级数是指将数列的项依次用加号连接起来的函数
级数 公式: ∑ i = 1 n 2 i = 2 n + 1 − 1 \sum_{i=1}^n {2^i} = 2^{n+1} -1 i=1n2i=2n+11 , ∑ i = 1 n A i = A n + 1 − 1 A − 1 \sum_{i=1}^n {A^i} = \frac{A^{n+1}-1}{A-1} i=1nAi=A1An+11
如果 0< A < 1, ∑ i = 1 n A i ≤ 1 1 − A \sum_{i=1}^n {A^i} \leq \frac{1}{1-A} i=1nAi1A1

4. 模运算

取余:取余运算在计算商值时向0方向舍弃小数位

取余,遵循尽可能让余数的绝对值小的原则
取余例子:
5 rem 3 = 2
-5 rem 3 = -2
5 rem -3 = 2
-5 rem -3 = -2

取模:取模运算在计算商值时向负无穷舍弃小数位

取模,遵循尽可能让商小的原则
取模例子:
5 mod 3 = 2
-5 mod 3 = 1
5 mod -3 = -1
-5 mod -3 = -2

5. 证明的方法
5.1) 归纳法证明
5.1.1) 基准情形
5.1.2) 归纳假设

你可能感兴趣的:(数学)