母函数的基本方程的介绍

母函数我已经基本明白了,但是想起来学习母函数的方程用了不少时间,所以
写下了具体的分析过程,让和我一样初学母函数的acmer更好学一点。
 
学习母函数我个人觉得就是学来其实简单,但是兵无常势,水无常形,关键是变化
之后也能弄懂才行,但是万变不离其宗,我个人觉得必须对母函数的方程非常了解,
才能变化应之。

 

#include<iostream>
usingnamespace std;
 
constint _max = 10001;
//c1是保存各项质量砝码可以组合的数目
//c2是中间量,保存没一次的情况
intc1[_max], c2[_max];  
intmain()
{   //int n,i,j,k;
    int nNum;  //
    int i, j, k;
 
    while(cin >> nNum)
    {
       for(i=0; i<=nNum; ++i)   // ---- ①
       {
           c1[i] = 1;
           c2[i] = 0;
       }
       for(i=2; i<=nNum; ++i)   // ----- ②
       {
 
           for(j=0; j<=nNum; ++j)   // ----- ③
              for(k=0; k+j<=nNum; k+=i)  // ---- ④
              {
                  c2[j+k] += c1[j];
              }
           for(j=0; j<=nNum; ++j)     // ---- ⑤
           {
              c1[j] = c2[j];
              c2[j] = 0;
           }
       }
       cout << c1[nNum] << endl;
    }
    return 0;
}
 


以nNum=2为例吧
①:其实就是对其进行最基本的赋值过程,c2数组只是个媒介,c1数组才是我们
最终想要的,在对c1进行赋值1 的过程中,是因为无论怎么样都肯定有一种即
(1+x+x^2+x^3....),不明白不要紧
②  这里代表的是第几个式子,在写这个代码时,作者已经在前面列举了(1+x+x^2)
这种情况,所以从第二个式子(1+x^2)开始喽
③我理解这里表达的是一个式子的各项指数,比如(1+x+x^2)的各种指数,
0,1,2,若n 为其他值,则有3,4,5,6...n。
④为什么k+j<=nNum 呢,原因很简单,因为我们在nNum=2时候,只需要求x^2的
系数就够了,别的指数前的系数不用求的所以只会求出X的指数为0,1,2的前的系数
而我们第二个式子时每个X的指数的差都是2,所以就+i 了
⑤最后进行替换,c2又再一次接受了暂时放置对应指数的系数的值,终于完成了任务


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值