c++中的数论知识

写在开头:word的公式打不上来,只能截图了

一.组合数学

(1) 加法定理与乘法原理

  1. 加法原理:做一件事情,完成它可以有n 类办法 ,在第一类办法中有m1种不同的方法,在第二类办法中有m2种不同的方法,......,在第n类办法中有mn种不同的方法。那么完成这件事共有N =m1+m2+...+mn种不同的方法。
  2. 乘法原理:做一件事情,完成它需要分成n 个步骤 ,做第一步有m1种不同的方法,做第二步有m2种不同的方法,......,做第n步有种mn不同的方法,那么完成这件事有N=m1m2...mn种不同的方法。
  3. 两个原理的区别:一个与分类有关,一个与分步有关;加法原理是"分类完成",乘法原理是"分步完成"

(2) 排列与组合

  1. 排列

概念:从n个不同元素中,任取m(m≤n)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列。

排列数:从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号表示。

计算公式:=n(n-1)(n-2)......(n-m+1)=

2.组合

概念:从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合。

组合数:从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数,用符号表示。

(3) 鸽巢原理(抽屉原理)

  1. 简单形式:如果n+1个物体被放进n个盒子,那么至少有一个盒子包含两个或更多的物体。
  2. 加强形式:令q1,q2... ,qn为正整数。如果将q1+q2... +qn-n+1个物体放入n个盒子内,那么或者第一个盒子至少含有q1个物体,或者第二个盒子至少含有q2个物体,... ,或者第n个盒子含有qn个物体

(4) 容斥原理

  1. S 的不具有性质P 1P 2...Pm 的物体的个数
    |A 1A 2...A m|=|S |-∑|Ai |+∑|AiAj |-∑|AiAjAk |+... +(-1)m|A 1A 2...Am|
  2. 推论:至少具有性质P 1P 2,...Pm 之一的集合S 的物体的个数有
    |A 1A 2...Am |=|S |---|A 1A 2...A m|=
    ∑|Ai |-∑|AiAj |+∑|AiAjAk |+... +(-1)m+1|A 1A 2...Am|

二.同余的性质

三.最大公约数,最小公约数

四.解不定方程

五.同余方程

六.素数和素数表

七.分解质因数