复习整理:数学知识

· · 算法·理论

数及其运算

自然数、整数、有理数、实数及其算术运算

难度过低,一笔带过。

进制转换

n转化为b进制数核心代码

int x = 0;
while(n != 0){
  a[x] = n%b;
  x++;
  n = n/b;
}

初等数论

整除、因倍质合、指数

b 能被 a 整除”,记作 a \mid b ,不能被整除则记作 a \nmid b

剩下过于简单,一笔带过。

取整

模运算、同余

同余的性质:

  1. 自反性:a \equiv a \pmod m
  2. 对称性:若 a\equiv b\pmod m ,则 b\equiv a\pmod m
  3. 传递性:若 a\equiv b\pmod mb\equiv c\pmod m ,则 a\equiv c\pmod m
  4. 可加性:a\pm c\equiv b\pm d\pmod m
  5. 可乘性:ac\equiv bd\pmod m
  6. 对于任意自然数 n ,如果 a\equiv b\pmod m ,则 an\equiv bn\pmod m
  7. 如果 ac\equiv bc\pmod m\gcd(c,m) = 1 ,则 a\equiv b\pmod m

整数唯一分解定理(算数基本定理)

设正整数 a,那么必有表示:

a=p_1^{a_1}p_2^{a_2}\cdots p_m^{a_m}

其中 p_j(1\le j\le m) 是素数。并且在不计次序的意义下,该表示唯一。

int p[105],a[105],tot=0;

void getfac(){
  for(int i = 2; i*i <= x; i++){
    if(x%i == 0){
      p[++tot] = i;
      while(x%i == 0){
        a[tot]++;
        x /= i;
      }
    }
  }
  if(x > 1){
    p[++tot] = x;
    a[tot] = 1;
  }
}

碾转相除

int gcd(int a,int b){
  if(b == 0){
    return a;
  }
  return gcd(b,a%b);
}

素数筛法

Eratosthenes 筛法(埃拉托斯特尼筛法,简称埃氏筛法) ,时间复杂度是 O(n\log\log n)

const int MAXN = 1e5+5;
int prime[MAXN],cnt;
bool flag[MAXN];

void E_Sieve(){
  for(int i = 2; i <= n; i++){
    if(!flag[i]){
      for(int j = 2; j * i <= n; j++){
        flag[j * i] = 1;
      }
    }
  }
  for(int i = 2; i <= n; i++){
    if(!flag[i]){
      prime[++cnt] = i;
    }
  }
}

同余式

欧拉定理欧拉函数

费马小定理

威尔逊定理

离散与组合数学

集合

加法原理

乘法原理

排列组合

杨辉三角