数论排列组合问题

Posted brokenstring

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数论排列组合问题相关的知识,希望对你有一定的参考价值。

排列

定义:

从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列;从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号 A(n,m)表示

公式:

A(n,m)=n(n-1)*(n-2)*……*(n-m+1)= n!/(n-m)!

PS:此外规定0!=1

特殊排列:

  • 不全相异元素的排列:

在n个元素中 n1个元素彼此相同 有n2个元素彼此相同......有nm个元素彼此相同 并且n1+n2+...+nm=n

其排列数公式为:n!/(n1!*n2!*...*nm!)

【引例】把3个相同的黄球 2个相同的蓝球 4个相同的白球排成一排 有(3+2+4)!/(3!*2!*4!)=1260

  • 圆排列

从n个数中取m个 不分首尾地排成一个圆圈的排列叫做圆排列 方案数为A(n,m)/m=n!/(m*(n-m)!)


组合

定义:

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

公式:

C(n,m)=A(n,m)/m!=n!/(m!(n-m)!) 因为多出了一个全排列需要删去

可重复组合:从n个元素中 取出r个元素组成一个组合 且允许这r个重复使用 记为H(n,r)=C(n+r-1,r)

性质:

  1. C(n,m)=C(n,n-m) 规定:C(n,0)=C(n,n)=1
  2. C(n+1,m)=C(n,m)+C(n,m-1) 杨辉三角递推

二项式定理:

(a+b)nni=0C(n,i)a(n-i)bi

二项式系数:C(n,i) 运用杨辉三角

【例题】洛谷P1313 [NOIP2011TG]计算系数:https://www.luogu.org/problemnew/show/P1313

题解链接:

 

以上是关于数论排列组合问题的主要内容,如果未能解决你的问题,请参考以下文章

Uva 11076 Add Again (数论+组合数学)

bzoj 2467[中山市选2010]生成树(数论--排列组合)

数论篇7——组合数 & 卢卡斯定理(Lucas)

排列组合中元素有相同的怎么办

python中的排列组合

java字母和数字排列组合后