- 38
- 0
- 约4.85千字
- 约 34页
- 2022-10-27 发布于上海
- 举报
会计学
1
组合数学整数的拆分
2
2.8:整数的拆分
1、拆分的概念
2、拆分的模型
3、拆分算法:递归实现
4、用母函数讨论拆分数
第1页/共34页
3
2.8:整数的拆分
所谓整数的拆分,是指把一个正整数拆分成若干正整数的和。不同的拆分法的数目称为拆分数
例如:考虑正整数4的拆分数:
4=4,4=3+1,4=2+2,4=2+1+1,4=1+1+1+1
通常用p(n)表示整数n拆分成若干正整数的和的拆分数,也可说成方案数
例如p(4)=5。
1、拆分的概念
第2页/共34页
4
(1)、C(n,r)
2、拆分的模型
2.8:整数的拆分
从n个不同的球中取出r个,放进r个相同的盒子中,不许空盒,有多少种放法.
(2)、P(n,r)
从n个不同的球中取出r个,放进r个不相同的盒子中,不许空盒,有多少种放法.
第3页/共34页
5
(3)、从n个不同元素中取r个允许重复的组合
2.8:整数的拆分
r个相同的球放进n个不同的盒子中,允许空盒,有多少种放法.
以正整数4为例:
4=4,4=3+1,4=2+2,4=2+1+1,4=1+1+1+1
(4)、正整数n的拆分数
第4页/共34页
6
正整数n的拆分,相当于把n个无区别的球放进n个无区别的盒子,盒子中允许放一个以上的球,也允许空着
以正整数4为例,球的放法如下:
4=4,4=3+1,4=2+2,4=2+1+1,4=1+1+1+1
○○
○○
○
○○
○
2.8:整数的拆分
***
第5页/共34页
7
3、拆分算法:递归实现
定义一个函数Q(n,m):表示整数n的所有加数都不超过m的拆分数。
n的拆分数就可以表示为Q(n,n)
Q(n,n)有以下递归关系
(1)Q(n,n)=1+Q(n,n-1)
停止条件:
(1)Q(n,1)=1
(2)Q(1,m)=1
2.8:整数的拆分
Q(n,m)有以下递归关系
(2)Q(n,m)=Q(n,m-1)+Q(n-m,m)
第6页/共34页
8
int divinteger(int n,int m)
{if (n1||m1)
printf(“error”);
else if(n=1||m=1)
return(1);
else if(nm)
return divinteger(n,n)
else if(n=m)
return(1+divinter(n,n-1));
else
return(divinteger(n,m-1)+divinteger(n-m,m));
}
2.8:整数的拆分
第7页/共34页
9
例1 求4的拆分数。
解:分析下面的多项式x4项的系数与4的拆分数的关系.
(1+x+x2+x3+x4…)(1+x2+x4…)
(1+x3…)(1+x4…)
4、用母函数讨论拆分数
2.8:整数的拆分
4=1+1+1+1,4=2+1+1,4=2+2,4=3+1, 4=4,
第8页/共34页
10
n的拆分数的母函数。
4、用母函数讨论拆分数
2.8:整数的拆分
第9页/共34页
11
例2 求1角、2角、3角的邮票可贴出不同数值邮资的方案数的母函数。
解:
单独用1角的母函数为1+x+x2+x3+…
单独用2角邮票的母函数为1+x2+x4+x6+…
单独用3角邮票的母函数为1+x3+x6+x9+…
2.8:整数的拆分
第10页/共34页
12
2.8:整数的拆分
第11页/共34页
13
例3 求正整数n拆分成1,2,…m的和,并允许重复的拆分数。如若其中m至少出现一次,试求它的方案数及其母函数。
解1:
展开式中xn项的系数就是要求的拆分数。
2.8:整数的拆分
第12页/共34页
14
解2:如果m至少出现一次。
G(x)=(1+x+x2+ … )(1+x2+x4+… )…
(xm+x2m+…)
2.8:整数的拆分
第13页/共34页
15
2.8:整数的拆分
正整数n拆分成1,2,…m的和,并允许重复的拆分数。
若其中m至少出现一次,它的方案数等于拆分成1,2,…,m的拆分数减去拆分成1,2,…,m-1的拆分数。
以正整数4为例:
4=4,4=3+1,4=2+2,4=2+1+1,4=1+1+1+1
第14页/共34页
16
定理2.8.1 正整数r拆分成不同正整数和的拆分数,
原创力文档

文档评论(0)