组合数学整数的拆分.pptxVIP

  • 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)

1亿VIP精品文档

相关文档