组合数学$1排列组合
C1 排列组合
S0 计数原理
1)加法原理
: S = S 1 + S 2 + ⋯ + S k , S i ∩ S j = ∅ ⟹ ∣ S ∣ = ∑ i ∣ S i ∣ \mathbb{S = S_1 + S_2 + \dots + S_k, S_i \cap S_j = \varnothing \Longrightarrow |S| = \sum\limits_i |S_i|} S=S1+S2+⋯+Sk,Si∩Sj=∅⟹∣S∣=i∑∣Si∣
2)减法原理
: U = S + A , S ∩ A = ∅ ⟹ ∣ S ∣ = ∣ U ∣ − ∣ A ∣ \mathbb{U = S+A,S\cap A = \varnothing \Longrightarrow |S| = |U| -|A|} U=S+A,S∩A=∅⟹∣S∣=∣U∣−∣A∣
3)乘法原理
: ∣ A × B ∣ = ∣ A ∣ × ∣ B ∣ , A 、 B \mathbb{|A\times B | = |A|\times|B|,A、B} ∣A×B∣=∣A∣×∣B∣,A、B 的集合特征不应当有依赖关系
- 技巧:
- 约束性强的元素先分层
- 不相邻问题:隔板法;减法(捆绑使之相邻)
4)除法原理
: A \mathbb{A} A 中每 k k k 个元素具备相同特征,则 ∣ S ∣ = ∣ A ∣ / k \mathbb{|S| = |A| / k} ∣S∣=∣A∣/k
S1 排列与组合
1)排列
:顺序有关计数
n n n 元集 r r r 线性排列个数: P ( n , r ) = A n r = n ! ( n − r ) ! P(n,r)=A_n^r=\frac{n!}{(n-r)!} P(n,r)=Anr=(n−r)!n!
循环排列个数: P ( n , r ) / r = n ! r ( n − r ) ! P(n,r)/r = \frac{n!}{r(n-r)!} P(n,r)/r=r(n−r)!n!
圆桌 ≠ 项链:顺逆时针前者不同后者相同
递推: A n k = n A n − 1 n − 1 = A n − 1 k + k A n − 1 k − 1 A_n^k = nA_{n-1}^{n-1} = A_{n-1}^k + k A_{n-1}^{k-1} Ank=nAn−1n−1=An−1k+kAn−1k−1
无限重 k k k 元多重集 r r r 线性排列: k r k^r kr
循环排列
: 1 r ∑ d ∣ r ϕ ( r d ) k d \frac{1}{r}\sum\limits_{d|r}\phi(\frac{r}{d}) k^d r1d∣r∑ϕ(dr)kd有限 k k k 元多重集,重数为 n 1 , n 2 , ⋯ , n k n_1,n_2,\cdots,n_k n1,n2,⋯,nk,线性排列数: n ! n 1 ! n 2 ! ⋯ n k ! \frac{n!}{n_1!n_2!\cdots n_k!} n1!n2!⋯nk!n!
证明:
法一: A n n 1 A n − n 1 n 2 A n − n 1 − n 2 n 3 ⋯ A n − n 1 − ⋯ − n k − 1 n k = n ! / ∏ i n i ! A_{n}^{n_1}A_{n-n_1}^{n_2}A_{n-n_1-n_2}^{n_3}\cdots A_{n-n_1-\cdots - n_{k-1}}^{n_k}= n! /\prod_i n_i! Ann1An−n1n2An−n1−n2n3⋯An−n1−⋯−nk−1nk=n!/∏ini!
法二: n n n 个元素指派到 k k k 个不同部分
n n n 个不同元素分配到 k k k 个容量为 n 1 , n 2 , ⋯ , n k n_1,n_2,\cdots,n_k n1,n2,⋯,nk 的盒子,不计盒子顺序:仅当 n 1 = ⋯ = n k n_1 = \cdots=n_k n1=⋯=nk 成立 n ! k ! n 1 ! n 2 ! ⋯ n k ! \frac{n!}{k!n_1!n_2!\cdots n_k!} k!n1!n2!⋯nk!n!
生成方式: g ( x ) = ( 1 + x 1 + x 1 2 + ⋯ + x 1 n 1 ) ( 1 + x 1 + x 1 2 + ⋯ + x 1 n 2 ) ⋯ g(x) = (1+x_1+x_1^2+\cdots +x_1 ^ {n_1})(1+x_1+x_1^2+\cdots +x_1 ^ {n_2})\cdots g(x)=(1+x1+x12+⋯+x1n1)(1+x1+x12+⋯+x1n2)⋯
2)组合
:顺序无关计数
n n n 元集 r r r 组合个数: C ( n , r ) = C n r = n ! ( n − r ) ! C(n,r)=C_n^r=\frac{n!}{(n-r)!} C(n,r)=Cnr=(n−r)!n!
无限 k k k 元多重集 r r r 组合: C r + k − 1 r C_{r+k-1}^r Cr+k−1r = C r + k − 1 k − 1 = C_{r+k-1}^{k-1} =Cr+k−1k−1
即 ∑ i = 1 k x i = r , x i ≥ 0 \sum\limits_{i=1}^ k x_i = r, x_i\ge 0 i=1∑kxi=r,xi≥0 的解数 a r a_r ar
组合意义解法:使用隔板法解决生成函数法:$g(x) = \frac{1}{(1-x)^k}=\sum\limits_{r=0}^\infin a_r x^r$([负二项式系数]())
有限 k k k 元多重集,重数为 n 1 , n 2 , ⋯ , n k n_1,n_2,\cdots,n_k n1,n2,⋯,nk, r r r 组合:
- 计算无限重情况下的组合数 S \mathbb{S} S
- 将无限重换成有限重,计算 x i ≥ n i + 1 x_i\ge n_i + 1 xi≥ni+1 , ∑ i = 1 k x i = r \sum\limits_{i=1}^k x_i = r i=1∑kxi=r 的组合数 A i \mathbb{A}_i Ai
- 由容斥原理,所求为 ⋂ i = 1 n A i ˉ \bigcap\limits_{i = 1} ^ n \bar{A_i} i=1⋂nAiˉ
思路:第一层——有序无序,第二层——是否有重复元素
S2 二项式系数
1)起源:帕斯卡三角形
1
1 1
1 2 1
1 3 3 1
……
2)组合数-格路径意义:从 (0,0) 到 (n,k),限制每次只能到正下或斜右下,路径总数
3)二项式定理
: ( x + y ) n = ∑ k = 0 n C n k x k y n − k (x+y)^n = \sum\limits_{k=0}^n C_n^kx^ky^{n-k} (x+y)n=k=0∑nCnkxkyn−k
多项式定理
: ( x 1 + x 2 + ⋯ + x k ) n = ∑ ( n n 1 n 2 ⋯ n k ) x 1 n 1 x 2 n 2 ⋯ x k n k (x_1+x_2+\cdots + x_k)^n = \sum {n \choose n_1 \ n_2 \ \cdots \ n_k}x_1^{n_1}x_2^{n_2}\cdots x_k^{n_k} (x1+x2+⋯+xk)n=∑(n1 n2 ⋯ nkn)x1n1x2n2⋯xknk多项式系数
: ( n n 1 n 2 ⋯ n k ) = n ! n 1 ! n 2 ! ⋯ n k ! {n \choose n_1 \ n_2 \ \cdots \ n_k} = \frac{n!}{n_1!n_2!\cdots n_k!} (n1 n2 ⋯ nkn)=n1!n2!⋯nk!n!- ( n n 1 n 2 ⋯ n k ) = ( n − 1 n 1 − 1 n 2 ⋯ n k ) + ( n − 1 n 1 n 2 − 1 ⋯ n k ) + ⋯ + ( n − 1 n 1 n 2 ⋯ n k − 1 ) {n \choose n_1 \ n_2 \ \cdots \ n_k} = {n - 1 \choose n_1 - 1\ n_2 \ \cdots \ n_k}+ {n - 1 \choose n_1 \ n_2 - 1 \ \cdots \ n_k}+ \cdots + {n - 1 \choose n_1 \ n_2 \ \cdots \ n_k - 1} (n1 n2 ⋯ nkn)=(n1−1 n2 ⋯ nkn−1)+(n1 n2−1 ⋯ nkn−1)+⋯+(n1 n2 ⋯ nk−1n−1)
广义二项式系数
: C a k = { ∏ i = 0 k − 1 ( a − k ) k ! k ≥ 1 0 k = 0 C_a^k=\begin{cases} \frac{\prod\limits_{i = 0}^{k-1}(a-k)}{k!} & k\ge 1 \\ 0 & k = 0 \end{cases} Cak=⎩⎪⎨⎪⎧k!i=0∏k−1(a−k)0k≥1k=0牛顿二项式定理
: 0 < ∣ x ∣ < ∣ y ∣ , ( x + y ) a = ∑ k = 0 ∞ C a k x k y n − k 0\lt |x|\lt |y|,(x+y)^a=\sum\limits_{k=0}^\infin C_a^kx^ky^{n-k} 0<∣x∣<∣y∣,(x+y)a=k=0∑∞Cakxkyn−k负二项式系数
: C − n k = ( − 1 ) k C n + k − 1 k C_{-n}^k = (-1)^kC^k_{n+k-1} C−nk=(−1)kCn+k−1k负二项分布
: 1 ( 1 − p x ) n = ∑ k = 0 ∞ C − n k ( − p x ) k = ∑ k = 0 ∞ C n + k − 1 k ( p x ) k \frac{1}{(1-px)^n}=\sum\limits_{k=0}^\infin C_{-n}^k(-px)^k = \sum\limits_{k=0}^\infin C_{n+k-1}^k(px)^k (1−px)n1=k=0∑∞C−nk(−px)k=k=0∑∞Cn+k−1k(px)k第 n n n 次成功前失败次数的分布
4)组合数恒等式
:
- C n r = C n n − r C_n^r = C_n^{n-r} Cnr=Cnn−r
- r n C n r = C n − 1 r − 1 \frac{r}{n} C_n^r = C_{n-1}^{r-1} nrCnr=Cn−1r−1
- ∑ k = 0 n C n k = 2 n \sum\limits_{k=0}^nC_n^k = 2^n k=0∑nCnk=2n
- $$ ∑ k = 0 n k C n k = n 2 n − 1 \sum\limits_{k=0}^nkC_n^k = n2^{n-1} k=0∑nkCnk=n2n−1
- ∑ k = 0 ⌊ n / 2 ⌋ C n 2 k + 1 = ∑ k = 0 ⌊ n / 2 ⌋ C n 2 k = 2 n − 1 \sum\limits_{k=0}^{\lfloor{n/2}\rfloor} C_n^{2k+1} = \sum\limits_{k=0}^{\lfloor{n/2}\rfloor} C_n^{2k} = 2^{n-1} k=0∑⌊n/2⌋Cn2k+1=k=0∑⌊n/2⌋Cn2k=2n−1
- ∑ k = 0 n ( C n k ) 2 = C 2 n n \sum\limits_{k=0}^n (C_n^k)^2 = C_{2n}^n k=0∑n(Cnk)2=C2nn
- ∑ k = 0 n C m 1 k C m 2 n − k = C m 1 + m 2 n \sum\limits_{k=0}^n C_{m_1}^kC_{m_2}^{n-k} = C_{m_1+m_2}^n k=0∑nCm1kCm2n−k=Cm1+m2n(
Vandemonde卷积公式
)
- ∑ k = 0 n C m 1 k C m 2 n − k = C m 1 + m 2 n \sum\limits_{k=0}^n C_{m_1}^kC_{m_2}^{n-k} = C_{m_1+m_2}^n k=0∑nCm1kCm2n−k=Cm1+m2n(
- C n k = C n − 1 k + C n − 1 k − 1 C_n^k = C_{n-1}^k +C_{n-1}^{k-1} Cnk=Cn−1k+Cn−1k−1 (
Pascal公式
)- C n + 1 p + 1 = ∑ k = 0 n C k p = ∑ k = 0 n C k k − p C_{n+1}^{p+1} = \sum\limits_{k=0}^n C_k^p = \sum\limits_{k=0}^nC_k^{k-p} Cn+1p+1=k=0∑nCkp=k=0∑nCkk−p
- C r + k + 1 k = ∑ i = 0 k C r + i i , r ∈ R C_{r+k+1}^k = \sum\limits_{i=0}^k C_{r+i}^{i} ,r\in R Cr+k+1k=i=0∑kCr+ii,r∈R
- C n m C m k = C n k C n − m m − k C_n^mC_m^k = C_n^kC_{n-m}^{m-k} CnmCmk=CnkCn−mm−k
5)单峰性
: C n 0 < ⋯ < C n ⌊ n / 2 ⌋ = C n ⌊ ( n + 1 ) / 2 ⌋ > ⋯ > C n n C_n^0\lt \cdots \lt C_n^{\lfloor n/2 \rfloor}=C_n^{\lfloor (n+1)/2 \rfloor}\gt\cdots\gt C_n^n Cn0<⋯<Cn⌊n/2⌋=Cn⌊(n+1)/2⌋>⋯>Cnn
S3 偏序
1)反链
: n n n 元素集 S \mathbb{S} S 幂集的子集 A \mathscr{A} A,元素互不包含;
Sperner 定理: n n n 元集的任何反链至多包含 C n ⌊ n / 2 ⌋ C_n^{\lfloor n / 2 \rfloor} Cn⌊n/2⌋ 个集合;
记 A k \mathbb{A}_k Ak 为含有 k k k 个元素的子集,则最大反链由所有 { A k n = 2 k A k − 1 = A k + 1 n = 2 k − 1 \begin{cases} \mathbb{A}_k & n=2k\\ \mathbb{A}_{k-1} = \mathbb{A}_{k+1} & n=2k-1 \\ \end{cases} {AkAk−1=Ak+1n=2kn=2k−1 构成
2)链
: n n n 元素集 S \mathbb{S} S 幂集的子集 A \mathscr{A} A,且构成其上一个全序 < A , ⊆ \mathscr{A} ,\sube A,⊆>
- 最大链:包含各种大小的集合各一个
- 若 ∣ K ∣ = k |\mathbb{K}|= k ∣K∣=k 则包含 K \mathbb{K} K 的最大链个数 k ! ( n − k ) ! k!(n-k)! k!(n−k)!
3)命题
:反链与链至多只有一个公共元素 由定义易得
4)推广:若 < X , ≤ \mathbb{X},\le X,≤>是有限偏序集:
- 定义推广:
- 链与反链: X \mathbb{X} X 的子集,反链中任意元素不可比,链中任意元素可比
性质
:X \mathbb{X} X 分成反链的个数的上确界 = 是最大链长度
X \mathbb{X} X 分成链的个数的上确界 = 最大反链大小(Dilworth 定理)
< P ( X ) , ⊆ \mathscr{P}(\mathbb{X}),\sube P(X),⊆>上的链剖分的归纳生成
假设 $\mathbb{X}_n = \{1,2,\cdots,n\}$ 显然有 $\mathbb{X}_1$ 的链剖分:$\varnothing \sube \{1\}$ 对 $\mathbb{X}_{n-1}$ 的每一条链 $\mathbb{A}_1\sube \mathbb{A}_2 \sube \cdots \sube \mathbb{A}_k$:$\mathbb{X}_n$ 的链剖分由两部分组成:$\mathbb{A}_1\sube \mathbb{A}_2 \sube \cdots \sube \mathbb{A}_k \sube \ \mathbb{A}_k\cup \{n\}$$\mathbb{A}_1 \cup \{n\} \sube \mathbb{A}_2 \cup \{n\}\sube \cdots \sube \mathbb{A}_{k-1} \cup \{n\},k\ge 2$
至此给出了 Sperner 定理的一个构造性证明
组合数学$1排列组合相关推荐
- java 穷举 排列组合,JavaScript递归穷举所有排列组合并找出重复值
null export default { data() { return { resultArr:[] } }, mounted(){ this.sss('aaba','abac'); this.s ...
- php 1到9加,php通过排列组合实现1到9数字相加都等于20的方法
摘要:本文实例讲述了php通过排列组合实现1到9数字相加都等于20的方法.分享给大家供大家参考.具体实现方法如下:<?php set_time_limit(0); /* 函数说明:huoqu_z ...
- 论排列组合,持续更新
今天刚好碰到了一个排列组合问题,因为之前对这方面的学习比较少,所以用的非常蠢的方法做了四位数中取三位的排列,写的程序太有局限性,源码如下 #define _CRT_SECURE_NO_WORNINGS ...
- 无重复字符串的排列组合
无重复字符串的排列组合.编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同. 示例1: 输入:S = "qwe" 输出:["qwe", " ...
- 【牛客每日一题】4.16 逆序对 ( 数学 , 排列组合 ,快速幂 , 快速乘 )
[每日一题]逆序对 链接:https://ac.nowcoder.com/acm/problem/14731 来源:牛客网 题目描述 求所有长度为n的01串中满足如下条件的二元组个数: 设第i位和第j ...
- js 排列 组合 的一个简单例子
最近工作项目需要用到js排列组合,于是就写了一个简单的demo. 前几天在网上找到一个写全排列A(n,n)的code感觉还可以,于是贴出来了, 排列的实现方式: 全排列主要用到的是递归和数组的插入 比 ...
- 【数论】排列组合学习笔记
目录 简介 加原理和乘法原理 加法原理 乘法原理 两原理的区别 例子 排列 例子 简介 排列组合是组合数学中的一种.排列就是指从给定个数的元素中取出指定个数的元素进行排序:组合则是指从给定个数的元素中 ...
- .NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)
阅读目录 1.KwCombinatorics基本介绍 2.足球彩票排列组合应用 3.排列组合生成代码与测试 今年上半年,我在KwCombinatorics系列文章中,重点介绍了KwCombinator ...
- 蓝桥杯——说好的进阶之去反复元素的排列组合
将待排列(组合)的数组,先分别统计出种类和个数,然后进行避免反复的排列(组合). /* 1,1,2,3的排列组合 去反复* (借此复习排列组合)* * 1:2 2个1* 2:1 1个2* 3:1 1个 ...
- 【COGS】2287:[HZOI 2015]疯狂的机器人 FFT+卡特兰数+排列组合
[题意][COGS 2287][HZOI 2015]疯狂的机器人 [算法]FFT+卡特兰数+排列组合 [题解]先考虑一维的情况,支持+1和-1,前缀和不能为负数,就是卡特兰数的形式. 设C(n)表示第 ...
最新文章
- “新视野”和“最远点”的约会
- 【Socket网络编程】4.tcp和udp的客户端和服务端收发流程
- 聊聊 MySql 索引那些事儿
- 【Knockout】二、监控属性Observables
- 数学之路(2)-数据分析-R基础(3)
- Boost:移动容器的测试程序
- mysql windows ad_您可以使用PHP获得Windows(AD)用户名吗?
- CodeForces - 1497D Genius(dp)
- OsharpNS轻量级.net core快速开发框架简明入门教程
- 代码智能技术如何应用到日常开发?
- 4月第3周业务风控关注 | 文化部再次审查直播和游戏产品,已下架4939款直播应用...
- 随想录(OllyDbg和IDA Pro的配合使用)
- java两个项目之间通过webservice调用-源码仅供参考
- 超火爆的6 个必学持续集成工具,测试人的福音
- java 集合工具类_Java集合中Collections工具类总结
- 【电力负荷预测】基于matlab粒子群算法优化支持向量机预测电力负荷【含Matlab源码 1225期】
- python计算矩阵的散度_Python Sympy计算梯度、散度和旋度的实例
- pg8168改mac命令_Realtek 8168网卡改MAC地址教程
- 面试题19/leetcode10:正则表达式匹配 C++
- 谷歌浏览器取消idm在微信读书PC页面自动下载pdf
热门文章
- 欧姆龙plc编程软件CX-Progammer v9.8升级教程
- 如何记账,记录家庭收支情况
- weui UI库适用范围
- 跟我一起写 Makefile
- Hall定理(bzoj 1135: [POI2009]Lyz)
- 专题二:浅谈社交行业如何有效反欺诈
- android webview使用html5input id=input type=file/ 上传相册、拍照照片
- maven 报错[WARNING] The artifact aspectj:aspectjrt:jar:1.5.4 has been relocated to org.aspectj:aspectj
- 假如工资有段位,你是个啥?
- cocos2d-js的(layer)生命周期,ctor,onEnter,onExit的使用