首页 > 其他分享 >【数学】组合数学 - 排列组合

【数学】组合数学 - 排列组合

时间:2024-04-12 12:11:58浏览次数:15  
标签:隔板 盒子 limits 组合 sum 小球 frac 数学 排列组合

父级页面:【数学】组合数学

排列

组合

可重排列

可重组合

隔板法

盒子可以为空

隔板法:x个相同的小球,有y个不同的盒子,每个盒子可以为空,求有多少种方案数?把y个不同的盒子视作y-1个不同的隔板,然后把小球视作不同的,全排列有 \(A_{x+y-1}^{x+y-1}\) 种,然后除以隔板的全排列(隔板之间没有区别),再除以小球的全排列(小球之间也没有区别),最后在两侧再加入两个隔板,然后两个隔板之间的就是这个盒子分配到的球数,也就是 \(C_{x+y-1}^{x}\) 。

隔板法2:Stars and Bars,x个相同的小球,y个不同的盒子,每个盒子可以为空,求有多少种方案数?用y-1个隔板去分隔小球,分隔得到y段可能为空的区间,这个区间就是原本的盒子。由于隔板是相同的,小球也是相同的,所以就是隔板数y-1和小球数x的和,选出y-1个位置来放隔板或者选出x个位置来放小球。(不同的盒子由其顺序确定)。

**注意这里是 \(C_{x+y-1}^{x}\) 或者 \(C_{x+y-1}^{y-1}\) ,不要写成 \(C_{x+y-1}^{x-1}\) 了!或者说就不应该想象成盒子数y,应该直接就用隔板数y-1就好了。

盒子可以为空的问题也可以先借y个小球过来,然后用下文盒子非空的方法做,显然是 x+y -1个小球之间选y-1个隔板,然后最后把虚空的小球还回去。

把小球数记为n,盒子数记为m,那么等价于求方程 \(x_1+x_2+x_3+\cdots+x_m = n, \; x_i \geq 0\) 的解。

盒子必须非空

x个相同的小球,y个不同的盒子,每个盒子至少要分到1个小球。这个问题比上面的简单得多,只需要找y-1个插板插到小球之间的x-1个空位里面,并且一个空位里面最多只有一个插板,所以就是 \(C_{x-1}^{y-1}\)。

但是也可以转化为上面那个问题,先取出y个小球各放1个进盒子里面,然后用盒子可以为空的方法做。

把小球数记为n,盒子数记为m,那么等价于求方程 \(x_1+x_2+x_3+\cdots+x_m = n, \; x_i \geq 1\) 的解。

这个方法可以进一步推广到盒子内至少有k个小球,那么要借y*k个虚空小球,然后最后再把他们都还回去。当然每个盒子的小球的下限甚至没必要一样。设每个盒子的下限是k_i,那么就先把 sum k_i 个小球都分别放到盒子里面再用盒子非空的方法去做。

整数分拆

小球也相同,盒子也相同,可以有空盒子。相当于整数分拆的问题,不太好算,可以用生成函数去搞

例如4的分拆有4, 3+1, 2+2, 2+1+1, 1+1+1+1, p(4) = 5

\[(1+x+x^2+x^3+...)*(1+x^2+x^4+x^8+...)*(1+x^3+x^6+x^9+...)*... \]

求上面这个多项式的第n项的结果就是n的整数分拆。其中第i个括号表示拆分出多少个数字i,不重不漏。

利用生成函数可以求出诸如:

差分拆:每个数字最多拆出现一次:

4的分拆只有4, 3+1

生成函数就是下面(因为相同的数字要么出现0次要么出现1次,所以变成了二项式):

\[(1+x)*(1+x^2)*(1+x^3)*... \]

奇分拆:拆出来的都是奇数:

4的分拆只有:3+1, 1+1+1+1

\[(1+x+x^2+x^3+...)*(1+x^3+x^6+x^9+...)*(1+x^5+x^{10}+x^{15}+...)*... \]

据说奇分拆和差分拆的数量是一样的。不会证明。

常用的求和:

\(C_n^m = C _{n-1}^{m-1}+C _{n-1}^{m}\)
\(mC_n^m = nC _{n-1}^{m-1}\)

二项式定理

\(\sum\limits_{i=0}^nC_n^i=C_n^0+C_n^1+C_n^2+……+C_n^n = 2^n\)
类似求和 \(\sum\limits_{i=0}^n(-1)^iC_n^i=C_n^0-C_n^1+C_n^2-……+(-1)^nC_n^n = 0\) (奇数项求和=偶数项求和)
\(\sum\limits_{i=0}^n2^iC_n^i = 3^n\)

利用 \(C_n^mC_m^k=C_n^kC_{n-k}^{m-k}\) ,加上二项式定理,可以得到下式

\(1C_n^1+2C_n^2+3C_n^3+……+nC_n^n =n2^{n-1}\)
\(\sum\limits_{i=1}iC_n^i = \sum\limits_{i=1}C_i^1C_n^i = \sum\limits_{i=1}C_n^iC_i^1 \\ = \sum\limits_{i=1}C_n^1C_{n-1}^{i-1} = C_n^1\sum\limits_{i=1}^n C_{n-1}^{i-1} \\ = C_n^1\sum\limits_{i=0}^{n-1} C_{n-1}^i \\ = n2^{n-1} \\\)

\(1^2C_n^1+2^2C_n^2+3^2C_n^3+……+n^2C _n^n =n(n+1)2^{n-2}\)

\(\frac{C_n^1}{1}-\frac{C_n^2}{2}+\frac{C_n^3}{3}+……+(-1)^{n-1}\frac{C _n^n}{n} =1 + \frac{1}{2}+ \frac{1}{3}+……+ \frac{1}{n}\)

\((C_n^0)^2+(C_n^1)^2+(C_n^2)^2+……+(C _n^n)^2 = C_{2n}^n\)

n个球选x个染黑,黑球之间位置差至少为k的方案:在n-(x-1)(k-1)里面选x个黑球,染黑之后在前x-1个黑球后紧跟k-1个白球,得一一对应。

圆排列:n个不同的球,取m个进行圆排列,先用组合数取出m个,然后规定圆的开头是最小的元素,那么剩下的元素可以任意排列,故答案为 \(C_n^m\cdot A_{m-1}^{m-1}=\frac{n!}{(n-m)!m!}\cdot(m-1)!=\frac{n!}{(n-m)!m}=\frac{A_n^m}{m}\)

错位排列

    ll D[MAXN];
    void initD(int n) {
        ASSERT(1 <= n && n <= MAXN && n < MOD);
        D[0] = 1, D[1] = 0;
        for(int i = 2; i <= n; ++i) {
            if(i & 1) {
                D[i] = (1LL * i * D[i - 1] - 1) % MOD;
                if(D[i] < 0) D[i] += MOD;
            } else
                D[i] = (1LL * i * D[i - 1] + 1) % MOD;
        }
    }

标签:隔板,盒子,limits,组合,sum,小球,frac,数学,排列组合
From: https://www.cnblogs.com/purinliang/p/18130905

相关文章

  • 【数学】组合数学 - 卡特兰数
    父级页面:【数学】组合数学卡特兰数记号为\(H_n\)第n个卡特兰数,下面的n就是指这个。\(H_0=1,H_1=1,H_2=2,H_3=5,H_4=14,H_5=42\)卡特兰数最常见的场景是合法的括号序,还有栈进出的方案。他们的特点就是“右括号”、“出栈”的次数不能超过剩余的“左括号”、“入栈”的次......
  • 蓝桥杯-构造(数学公式1/n = 1/(n+1) + 1/(n+1)n )
    0.题目1.题解1.0找规律n=1,1/1=1/2+1/3+1/6n=2,1/2=1/4+1/6+1/12n=3,1/3=1/6+1/9+1/18....实际上,1/6=1/12+1/12,1/12=1/36+2/36=1/36+1/18即1/6=1/(62)+1/(623/2)+1/(623),即2,3,6三种1.1构造我们想要知道1/n......
  • 回溯-组合
    回溯-组合回溯法的本质是穷举,其主要是为了解决n个for循环的问题,在for循环中套着递归从而不断实现for循环。回溯法解决的问题都可以抽象为树形结构,一般是在给定集合是取出符合一定规则的数据。集合的大小构成树的宽度,也即第一层的for循环遍历的范围,递归的深度构成树的深度,也就暴力......
  • 北京大学2024春季高等数学A(II)试题及简评
    总的来说,难度适中,可能第一题会卡一下,是一个极坐标的反向换元,如果想不到硬做还是挺难的,非常遗憾,博主没有瞪眼法瞪出来,最后才想出来但是已经来不及了TAT。另外二、六题都是挖洞法,分别是Stokes和Green的挖洞法,只要细心发现被积函数和积分区域的奇点就可以。第三题的不能使用Gauss......
  • 洛谷题单指南-数学基础问题-P1072 [NOIP2009 提高组] Hankson 的趣味题
    原题链接:https://www.luogu.com.cn/problem/P1072题意解读:求有多少个x,满足x和a0​的最大公约数是a1​,x和b0​的最小公倍数是b1,多组数据。解题思路:枚举法:因为x和a0​的最大公约数是a1​,x和b0​的最小公倍数是b1,所以x不大于b1​。枚举x有两种思路:1、x是a1的倍数,最多需要枚举......
  • 组合数学
    逆元若\(i\cdotx=1\),则\(i^{-1}=x\)。递推求乘法逆元\[令模数为p,正整数i,a=\lfloor\frac{p}{i}\rfloor,b=p\operatorname{mod}i,且b\ne0。\\a\cdoti+b=p\\\Downarrow\\a\cdoti+b\equiv0(\operatorname{mod}p)\\\frac{i}{b}+\frac{1}{a}\equiv0(\o......
  • 洛谷题单指南-数学基础问题-P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题
    原题链接:https://www.luogu.com.cn/problem/P1029题意解读:已知x,y,求有多少对p、q,使得p、q的最大公约数为x,最小公倍数为y。解题思路:枚举法即可。枚举的对象:枚举p,且p必须是x的倍数,还有p<=yq的计算:q=x*y/p,q要存在,必须x*y%p==0,且gcd(p,q)==x100分代码:#include......
  • 洛谷题单指南-数学基础问题-P1835 素数密度
    原题链接:https://www.luogu.com.cn/problem/P1835题意解读:要计算L-R范围内素数的个数。解题思路:直接对L~R的每个数判断素数肯定不可取,因为L、R的范围较大。既然要计算素数的个数,那么可以把其中的合数标记出来即可。如何标记合数?可以借助于筛素数的算法思想,枚举每一个素数,然......
  • 【SQL】mysql数学函数功能介绍并举例
    mysql数学函数:ABS(x):返回x的绝对值。CEIL(x)或CEILING(x):返回大于或等于x的最小整数。FLOOR(x):返回小于或等于x的最大整数。ROUND(x,d):返回x四舍五入到小数点后d位的值。POW(x,y)或POWER(x,y):返回x的y次幂。SQRT(x):返回x的平方根。m......
  • 神经网络背后的数学原理
    原文地址:TheMathBehindNeuralNetworks2024年3月29日深入研究现代人工智能的支柱——神经网络,了解其数学原理,从头开始实现它,并探索其应用。神经网络是人工智能(AI)的核心,为从发现照片中的物体到翻译语言的各种应用提供动力。在本文中,我们将深入探讨神经网络是什么,它......