c++中的数论知识

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

一.组合数学

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

  1. 加法原理:做一件事情,完成它可以有n 类办法 ,在第一类办法中有m~1~种不同的方法,在第二类办法中有m~2~种不同的方法,......,在第n类办法中有m~n~种不同的方法。那么完成这件事共有N =m~1~+m~2~+...+m~n~种不同的方法。
  2. 乘法原理:做一件事情,完成它需要分成n 个步骤 ,做第一步有m~1~种不同的方法,做第二步有m~2~种不同的方法,......,做第n步有种m~n~不同的方法,那么完成这件事有N=m~1~m~2~...m~n~种不同的方法。
  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. 加强形式:令q~1~,q~2~,... ,q~n~为正整数。如果将q~1~+q~2~+... +q~n~-n+1个物体放入n个盒子内,那么或者第一个盒子至少含有q~1~个物体,或者第二个盒子至少含有q~2~个物体,... ,或者第n个盒子含有q~n~个物体

(4) 容斥原理

  1. S 的不具有性质P ~1~,P ~2~,...P~m~ 的物体的个数
    |A ~1~∩A ~2~∩...A ~m~|=|S |-∑|A~i~ |+∑|A~i~A~j~ |-∑|A~i~A~j~A~k~ |+... +(-1)^m^|A ~1~∩A ~2~∩...A~m~|
  2. 推论:至少具有性质P ~1~,P ~2~,...P~m~ 之一的集合S 的物体的个数有
    |A ~1~∪A ~2~∪...A~m~ |=|S |---|A ~1~∩A ~2~∩...A ~m~|=
    ∑|A~i~ |-∑|A~i~A~j~ |+∑|A~i~A~j~A~k~ |+... +(-1)^m^^+1^|A ~1~∩A ~2~∩...A~m~|

二.同余的性质

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

四.解不定方程

五.同余方程

六.素数和素数表

七.分解质因数