一、重集组合数公式
重集组合数:从n个不同的数中,取r个数,且r个数中可以有重复的数,有多少种组合?
公式:F(n,r) = C(n+r-1,r)
二、前置定理
前置定理1:不同的重复组合中,至少有一个数出现的次数不同。
证明:
设命题p为:两个组合不同
设命题q为:两个组合中至少有一个数出现的次数不同
由于:若两个组合每个数出现的次数都相同,则它们是同一组合
故 非q->非p为真,即命题非q推导出命题非p为真
故 p->q为真,即命题p推导出命题q为真 (根据真值表,相同p,q的情况下,两者真值相同),
且p真,则q真
前置定理2:若将重复组合中的元素从小到大排序,那么两个不同的重复组合中,至少有一个位置的数大小不一样
证明:
同前值定理1,使用反证法
证明法1:关注每个不同的数出现的次数0-n
1.等价成放球问题
从n个不同的数中,取r个数,且r个数中可以有重复的数,即每个数可重复0-r次,求其组合数。
等价于:
从n个不同的盒子序号中,可重复的取r个序号,每个序号可重复0-r次,问有多少种序号的组合。
若每个序号被取到时,向盒子中放一个一样的小球,由前置定理知,不同的序号组合,至少有一个序号出现的次数不一样,且每个序号出现0-n次,即放入0-n个小球
即等价于:
有n个不同的盒子,有r个一样的小球,向盒子中放球,每个盒子可能放入0-n个小球,问有多少种放法。
2.求解放球问题
n个盒子可由 n+1 个 '|' 表示,r个球可由r个'o'表示
若n=3,r=5
即: o o o o o 放入,每个| |里可以放0-5个
| | | |
等价于:将5个'o'和中间2个'|'自由组合到7个位置上
有C(7,5)种组合,即C(7,5)种放法
那么n个盒子,n+1个'|',r个球,r个'o'
球的放法就等于将 r个‘o’和n-1个‘|’自由组合的组合数C(n-r+1,r)
3.故 从n个不同的数中,取r个数,且r个数中可以有重复的数,有C(n-r+1,r)种组合
证明法2:关注排序后的组合(有序序列)的映射
1.等价(映射)
将n个不同的数,映射成1-n
那么,从n个不同的数中,取r个数,且r个数中可以有重复的数,有多少种组合?
等价为 从1-n中取r个数,且r个数可以有重复的数,有多少种组合?
2.求解等价问题
设有k种组合:
将组合按从小到大的顺序排序后,通式为 x1≤x2≤...≤xr (组合为x1,x2,...,xr,xi∈[1,n])
将通式映射为 y1<y2<...<yr , yi=xi+i-1 (组合为 x1+0,x2+1,...,xr+r-1)
由前置定理2:若将重复组合中的元素从小到大排序,那么两个不同的重复组合中,至少有一个位置的数大小不一样。
故k种 x1≤x2≤...≤xr 组合 映射出 k种 y1<y2<...<yr 组合
由于 x序列为所有满足 排序后xi∈[1,n] 的组合
故 y序列为所有满足 排序后yi=xi+i-1∈[1,n+i-1] 的组合
证明:排序后yi∈[1,n+i-1]的所有组合,是从1- n+r-1中取r个数的组合
即y序列的组合数k = 从1- n+r-1取r个数(不可重复)的组合数 (满足排序后yi∈[1,n+i-1]的所有组合)
3.故 从n个不同的数中,取r个数,且r个数中可以有重复的数,有C(n-r+1,r)种组合
后面学了普通母函数,可以更简单地证明☺