母函数初识

原创 2015年06月10日 17:17:23

母函数,一种用于解决拆分,组合问题的手段,实现了用简单的四则计算在计算机中模拟复杂的组合过程。



对于应用:5拆分成1,2,3,4的和的情况一共有多少种? 实现代码:

#include <iostream>
using namespace std;
int c1[100],c2[100];
int main()
{
    int i,j,k,n=5;
    for(i=0;i<=n;i++){
        c1[i]=1;
        c2[i]=0;
    }
    for(i=2;i<n;i++){
        for(j=0;j<=n;j++){
            for(k=0;k+j<=n;k+=i){
                c2[k+j]+=c1[j];//下标指指数,值是系数。加相当于乘,指数改变
            }
        }
        for(j=0;j<=n;j++){
            c1[j]=c2[j]; //更新c1,c2.-->A和研究的B改变了。
            c2[j]=0;
        }
    }
    //for(i=1;i<=n;i++)
    //cout<<c1[i]<<endl;
    cout<<c1[5]<<endl;
    return 0;
}
当规定1,2,3,4的可用个数是1时。母函数的形式作出相应的改变:G(x)=(1+x)(1+x^2)(1+x^3)(1+x^4)=1+x+x^2+2X^3+2X^4+2X^5+2X^6+2X^7+X^8+X^9+X^10, 可以看出,1,2 ,3,4可以组成和有: 1,2-----10,而x^5对应于2,所以有2种情况:1+4,2+3。

实现:

#include <iostream>
#include<algorithm>
using namespace std;
int c1[100],c2[100];
int main()
{
    int i,j,k,n=10;
    c1[0]=c1[1]=1;
    for(i=2;i<5;i++){
        for(j=0;j<=n;j++)c2[j]+=c1[j];
        for(j=0;j<=n;j++)c2[j+i]+=c1[j];
        for(j=0;j<=n;j++){
            c1[j]=c2[j];
            c2[j]=0;
        }
    }
    for(i=1;i<=n;i++)cout<<c1[i]<<endl;
    return 0;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

初识母函数

例1:若有1克、2 克、3克、4克的砝码各一 枚,能称出哪几种重量?各有几种可能方案?   如何解决这个问题呢?考虑构造母函数。 如果用x的指数表示称出的重量,则: 1个1克的砝...
  • fsqfang
  • fsqfang
  • 2014年08月04日 15:02
  • 231

Lua初识之非全局函数-十二

Lua初识之非全局函数 -----注意:在Lua中调用一个函数要在调用之前定义,否则出错 -----表和函数放在一起 lib = {} lib.foo = function(x, y)  re...

ANSI库续(时间函数)与文件操作初识

C/C++学习笔记之十一         上一节我们讲到了头文件stdlib.h与头文件stdio.h中的sscanf、sprintf、rand、srand函数,这一节将继续讨论时间相关函数和文件操...

PHP中函数初识

函数的声明: function 函数名(参数…){ 函数体。。 }关于函数的调用: 只要函数的声明在脚本中可见,就可以通过函数名在脚本的任意位置调用,可以在声明之后调用,也可以在声明之前进行调...

第4天 流程控制语句与函数初识

第4天 流程控制语句与函数初识 1. switch语句 a)switch语句的格式:     switch(你的选择){        case值1:            符合值1执行的代...

初识回调函数

回调函数可以把调用者与被调用者分开,所以调用者不关心谁是被调用者。它只需知道存在一个具有特定原型和限制条件的被调用函数。简而言之,回调函数就是允许用户把需要调用的方法的指针作为参数传递给一个函数,以便...

Lua编程笔录--Lua初识及语法二(循环,流程控制,函数)

前言:前面的一些可以参考  Lua编程笔录--Lua初识及语法一

Qt中connect函数(信号与槽)初识

Qt开发信号与槽: 一、介绍 信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁。信号和槽机制是 Qt 的核心机制,可以让编程人员将...

初识C++之函数重载、重写、重定义的区别

在C++的学习中,慢慢接触了一些很容易混淆的名词,今天就来剖析几个容易混淆的名词。 1、函数重载   重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但...

初识C++之虚函数

1、什么是虚函数    在基类中用virtual关键字修饰,并在一个或多个派生类中被重新定义的成员函数,用法格式为:    virtual 函数返回类型 函数名(参数表)     {     ...
  • asd7486
  • asd7486
  • 2016年06月10日 11:35
  • 207
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:母函数初识
举报原因:
原因补充:

(最多只允许输入30个字)