首页 > 编程知识 正文

母指数算法视频,4.2.1指数函数的概念

时间:2023-05-05 16:52:03 阅读:167771 作者:3988

数论的一些基本知识母函数简要介绍了代码模板指数型母函数代码模板

母函数的简单介绍

定义:

对序列a0,a1,a2,a3…an建立函数:

g(x )=a0 a1x a2x2 a3x3 …

将函数g(x )称为序列a0、a1、a2、a3…an的母函数。

例如:

以砝码为例,母函数使用幂表示面额和数量。 例如,(1 x )用于表示一个1克砝码,(1 x2 )用于表示一个2克砝码,(1 x3 )用于一个3克砝码,(1 x4 )用于表示一个4克砝码。

表示这几个砝码的组合时,乘以各自的公式就可以了。 将示例中的四个表达式相乘可以得到1 x x2 2x3 2x4 2x5 2x6 2x7 x8 x9 x10。 各项系数表示各自的组合。 例如,如果是3,可以选择1和2,也可以选择3。 2时,只能选择一个2。

关键点:

实现向多项式的推广。

代码模板这里需要说明分数分解的概念。 与将整数分割为几个整数不同的分割法的总数称为分数分解,其代码是求整数n的分数分解。

# include iostream # include bits/stdc.h//母函数通常用于解决整数分割、邮票组合和砝码重量等问题。 #define lmax 1000//该示例是以整数分割为例的母函数代码,读取n,求出该数的分数usingnax,输入int c1[lmax]、c2[lmax]; int elem[lmax]; //如果给定的数值没有规则性,则用数组直接存储,用下标数intmain(//普通型母函数模板({ int n,I,j,k; while(cinn ) (for ) ) I=0; i=n; I ) (C1 ) I )=0; c2[i]=0; (for ) I=0; i=n; I ) (C1 ) I )=1; (for ) I=2; i=n; I )//重要的三层for循环,共有n个括号,n-1次for循环(for ) ) j=0; j=n; j )/c1阵列表示当前括号,c2阵列表示当前下一个括号,两层for环遍历for一次(k=0; k j=n; k=I({C2[JK]=C1[J] ); (for ) j=0; j=n; 将j//循环中获得的值转换为c1数组{ c1[j]=c2[j]; c2[j]=0; } } coutc1[n]endl; } return 0; }指数型母函数解决集合型问题,指数型母函数解决数组型问题。

代码模板# include iostream # include bits/stdc.h//指数型母函数通常用于解决组合问题: using namespace std; const int lmax=21; 由于涉及//阶乘,数据量一般为double c1[lmax],c2[lmax]; int val[lmax],F[lmax]; 将void factorial ()//阶乘的结果保存为f数组({ F[0]=1; for(intI=1; i=20; I ) f(I )=f(I-1 ) *I; }}int main ()//指数型母函数模板({ int n,m,I,j,k; factorial (; while((scanf ) (%d%d ),n,m ) ) for ) ) I=0; in; I ) scanf('%d ',val[i]; (for ) I=0; i=n; I ) (C1 ) I )=0; c2[i]=0; //memset (C1,0,sizeof ) C1 ); //此处的初始化可以用memset写为//memset (c 2,0,sizeof ) C2 )。 for(I=0; i=val[0]; I ) (C1 ) I )=1.0/f ); (for ) I=2; i=n; I )//重要的三层for循环,共有n个括号,n-1次for循环(for ) ) j=0; j=m; j )/c1阵列表示当前括号,c2阵列表示当前下一个括号,两层for环遍历for一次(k=0; k j=mk=val[i]; k () { c2[j k]=c1[j]/F[k]; (for ) j=0; j=m; 将j//循环中获得的值转换为c1数组{ c1[j]=c2[j]; c2[j]=0; }printf('%.0f(n ),c1[m]*F[m]; } return 0; )母函数方面的很多东西需要很多实践才能加深理解,我也在尝试和错误中写了一些东西,但还不够。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。