中第一个参数是存放位的数组,第二个参数是待处理的数。要将
的各位放在a中,就要将
10(当
≥10时)
母函数把的所有信息浓缩到了一个多项式里。可以把它作为整体进行运算,而不需要单独考虑每一个ai。母函数可分为很多种,包括普通母函数、指数母函数、勒让德级数、贝尔级数和狄利克雷级数。
类似:指数型函数:
a0
aa1ax2x23x3123
构造母函数的目的:解决某个特定的问题。因此选用何种母函数视乎序列本身的特性和问题的类型。
x2项的系数a1a2a1a3a
1a
中所有的项包括
个元素a1,a2,…a
中取两个组合的全体;即:x2项的系数从
个元素a1,a2,…a
中取两个的组合
f同理:x3项系数包含了从
个元素a1,a2,…a
中取3个元素组合的全体;以此类推。若令a1a2…a
1,则:
1x
是序列C
0C
1C
的母函数例1:若有1克、2克、3克、4克的砝码各一枚,能称出哪几种重量?各有几种可能方案?如果用x的指数表示称出的重量,则:1个1克的砝码可以用函数1x表示,1个2克的砝码可以用函数1x2表示,1个3克的砝码可以用函数1x3表示,1个4克的砝码可以用函数1x4表示1x1x21x31x41xx2x31x3x4x71xx22x32x42x52x62x7x8x9x10可称出从1克到10克,系数便是方案数。例如右端有2x5项,即称出5克的方案有2:53241;同样,612342;101234。故称出6克的方案有2,称出10克的方案有1例2:求用1分、2分、3分的邮票贴出不同数值的方案数。因邮票允许重复,故母函数为:
以展开后的x4为例,其系数为4,即4拆分成1、2、3之和的拆分数为4;即:411111121322母函数模板co
sti
t_max10001c1是保存各项质量砝码可以组合的数目c2是中间量,保存没一次的情况i
tc1_maxc2_max
i
t
Numi
tijkwhileci
Numfori0i
Numi①c1i1c2i0fori2i
Numi②forj0j
Numj③fork0kj
Numki④c2jkc1jforj0j
Numj⑤c1jc2jc2j0coutc1
e
dl解释上面标志的各个地方:2
①首先对c1初始化,由第一个表达式1xxx初始化,把质量从0到
的所有砝码都初始化为1②i从2到
遍历,这里i就是指第i个表达式,上面给出的第二种母函数关系式里,每一个括号括起来的就是一个表达式。③j从0到
遍历,这里j就是只一个表达式里第j个变量,比如在第二个表达242j式里:1xx里,第j个就是x③k表示r