-
2021-02-28 14:24:08
题目
总时间限制: 1000ms 内存限制: 65536kB
描述
计算多项式的导函数是一件非常容易的任务。给定一个函数f(x),我们用f’(x)来表示其导函数。我们用x^n来表示x的n次幂。为了计算多项式的导函数,你必须知道三条规则:(1)、©’ = 0 如果C是常量
(2)、(Cx^n)’ = Cn*x^(n-1) 如果n >= 1且C是常量
(3)、(f1(x)+f2(2))’ = f1’(x)+f2’(x)
容易证明,多项式的导函数也是多项式。
现在,请你编写一个程序,给定一个不包含负系数且已合并好同幂次项的多项式f(x),计算出它的导函数。
输入
输入有两行。
第一行是一个整数n(0 <= n <= 100)表明多项式的最高次幂为n。
第二行包含n+1个非负整数,Cn ,Cn-1 ,Cn-2 ,Cn-3 ,Cn-4 ,… ,C1,C0(0 <= Ci <= 1000)且Cn != 0。Ci是幂次为i的项的系数。
输出
在一行内输出f’(x)的结果。
(1) 如果g(x) = 0那么直接输出0
(2) 如果g(x)形如Cm(xm)+Cm-1(x(m-1))+…+C0(Cm!=0)那么输出Cm…C0
(3) 相邻整数之间有单个空格。
样例输入
3
0
10
2
3 2 1
3
10 0 1 2
样例输出
0
6 2
30 0 1===================================================
样例输入中多了个三,误以为有三组,但题目描述又说输入两组。矛盾===================================================
/*2021.2.28 */ #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N = 110; int n; int a[N]; //int t; int main(){ // cin >> t; int m; // while(t > 0){ // memset(a,0,sizeof(a)); cin >> n; for(int i = 0; i <= n; i++){ cin >> a[i]; } if(n == 0){ cout << "0" << endl; // t--; // continue; return 0; } m = n; for(int i = 0; i < n; i++,m--){ if(i != n - 1){ cout << a[i]*m << " " ; } else cout << a[i]*m << endl;; } // t--; // } return 0; }
更多相关内容 -
重心拉格朗日插值多项式和勒贝格常数:计算拉格朗日插值多项式和勒贝格函数/常数。-matlab开发
2021-06-01 21:33:52此外,它已被矢量化以进一步缩短计算时间。 第二个脚本 lebesgue.m 用于计算一组节点的 lebesgue 函数和常数。 如果您想使用 barylag 插入数据但使用了一些不寻常的节点集,请使用第二个脚本检查 lebesgue 常数以... -
38:计算多项式的导函数
2017-09-09 19:57:24计算多项式的导函数是一件非常容易的任务。给定一个函数f(x),我们用f'(x)来表示其导函数。我们用x^n来表示x的n次幂。为了计算多项式的导函数,你必须知道三条规则: (1)、(C)' = 0 如果C是常量 (2)、(C*x^n)...-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
计算多项式的导函数是一件非常容易的任务。给定一个函数f(x),我们用f'(x)来表示其导函数。我们用x^n来表示x的n次幂。为了计算多项式的导函数,你必须知道三条规则:
(1)、(C)' = 0 如果C是常量
(2)、(C*x^n)' = C*n*x^(n-1) 如果n >= 1且C是常量
(3)、(f1(x)+f2(2))' = f1'(x)+f2'(x)
容易证明,多项式的导函数也是多项式。
现在,请你编写一个程序,给定一个不包含负系数且已合并好同幂次项的多项式f(x),计算出它的导函数。
输入
-
输入有两行。
第一行是一个整数n(0 <= n <= 100)表明多项式的最高次幂为n。
第二行包含n+1个非负整数,C n ,C n-1 ,C n-2 ,C n-3 ,C n-4 ,… ,C 1,C 0(0 <= C i <= 1000)且Cn != 0。Ci是幂次为i的项的系数。
输出
-
在一行内输出f'(x)的结果。
(1) 如果g(x) = 0那么直接输出0
(2) 如果g(x)形如C m(x^m)+C m-1(x^(m-1))+…+C 0(C m!=0)那么输出C m…C 0
(3) 相邻整数之间有单个空格。
样例输入
-
3 0 10 2 3 2 1 3 10 0 1 2
样例输出
-
0 6 2 30 0 1
源码
#include <iostream> using namespace std; int main() { int t, n, C, index; // cin >> t; // for (int i=0; i<t; i++){ cin >> n; index = 0; if (n == 0){ cin >> C; cout << "0" << endl; return 0; } for (int j=n; j>0; j--){ cin >> C; if (index == 0) cout << C*j; else cout << " " << C*j; index++; } // } cout << endl; return 0; }
-
小作业,大想法:Python计算多项式函数
2020-09-15 16:15:42小作业,大想法:Python计算多项式函数 偶然中接到了一项小作业,初看很简单,思路基本在脑中了,但是当我打开Pycharm后打了第一次,却显示结果不对,那说明逻辑错误了。 先来看看题吧: 编一个函数,计算多项式的...小作业,大想法:Python计算多项式函数
偶然中接到了一项小作业,初看很简单,思路基本在脑中了,但是当我打开Pycharm后打了第一次,却显示结果不对,那说明逻辑错误了。
先来看看题吧:
编一个函数,计算多项式的取值,参数为系数数组和x的值。乍一看很简单,我却在这上翻了车,先贴代码吧(这个代码是非常正确的):
def Polynomial(x,*list): q = 0 for i in range(len(list)): q = q+list[i]*(x**(len(list)-i-1)) return q
一开始我打算采用秦九昭公式,即
但是却绕在循环里出不来了,由于作业的急迫性,我只好采取笨方法对多项式进行求值,即上边的那段代码。至于秦九昭算法,以后有时间了在补充吧…
-
勒让德多项式:相关勒让德多项式的快速计算-matlab开发
2021-05-30 18:11:49如果你只需要一个给定的顺序,这是一种内存和计算时间的浪费(特别是对于大块数据)。 函数legendreP(l,m,x) 是legendre(l,x) 的替代品,只是它只计算所需的顺序。 多项式系数是通过分析计算的。 系数是从较早的... -
一元、二元多项式计算函数
2017-09-16 10:12:12#include "stdio.h" #define TestNow 0 ...//一维多项式计算 double plyv(double a[],int n,double x) { int i; double u; u=a[n-1]; for (i=n-2; i>=0; i--) u=u*x+a[i]; return(u); }#include "stdio.h"
#define TestNow 0
//一维多项式计算
double plyv(double a[],int n,double x)
{ int i;
double u;
u=a[n-1];
for (i=n-2; i>=0; i--)
u=u*x+a[i];
return(u);
}
//二维多项式计算
double bply(double a[6][6],int n,double x,double y)
{ int i,j;
double u,v;
v = a[0][5];
for(j=n-2;j>=0;j--)
{
u=a[n-1-j][j];
for (i=n-2-j; i>=0; i--)
{
u=u*x+a[i][j];
}
v = v*y+u;
}
return(v);
}
//针对二维5阶多项式的优化函数
double bply55(double xin,double yin/*,double a[21]*/)
{
double x=xin;
double y=yin;
double z = 0;
/*
double P00 = a[0];
double P10 = a[1];
double P01 = a[2];
double P20 = a[3];
double P11 = a[4];
double P02 = a[5];
double P30 = a[6];
double P21 = a[7];
double P12 = a[8];
double P03 = a[9];
double P40 = a[10];
double P31 = a[11];
double P22 = a[12];
double P13 = a[13];
double P04 = a[14];
double P50 = a[15];
double P41 = a[16];
double P32 = a[17];
double P23 = a[18];
double P14 = a[19];
double P05 = a[20];
*/
/*
double P00 = -157.6646;
double P10 = 107.4548;
double P01 = -137.6695;
double P20 = -49.1798;
double P11 = 61.5766;
double P02 = -15.4219;
double P30 = 0.039778;
double P21 = -13.2057;
double P12 = 33.0038;
double P03 = -7.0569;
double P40 = 5.0611;
double P31 = 5.0977;
double P22 = -16.3451;
double P13 = 1.6553;
double P04 = 0.0029376;
double P50 = -0.91358;
double P41 = -1.6222;
double P32 = 2.6572;
double P23 = -0.079645;
double P14 = 0.053844;
double P05 = 0.022143;
*/
/********************************************************************************
觉得用宏这种方式替代系数最好
**********************************************************************************/
#define P00 -157.6646
#define P10 107.4548
#define P01 -137.6695
#define P20 -49.1798
#define P11 61.5766
#define P02 -15.4219
#define P30 0.039778
#define P21 -13.2057
#define P12 33.0038
#define P03 -7.0569
#define P40 5.0611
#define P31 5.0977
#define P22 -16.3451
#define P13 1.6553
#define P04 0.0029376
#define P50 -0.91358
#define P41 -1.6222
#define P32 2.6572
#define P23 -0.079645
#define P14 0.053844
#define P05 0.022143
z = P00+x*(P10+x*(P20+x*(P30+x*(P40+x*P50))))
+ y*( (P01+x*(P11+x*(P21+x*(P31+x*P41))))
+ y*( (P02+x*(P12+x*(P22+x*P32)))
+ y*( (P03+x*(P13+x*P23))
+ y*( (P04+x*P14)
+ y*P05))));
return z;
}
#if TestNow
void plyv0()
{
int i;
static double a[7]={-20.0,7.0,-7.0,1.0,3.0,-5.0,2.0};
static double x[6]={0.9,-0.9,1.1,-1.1,1.3,-1.3};
printf("\n");
for (i=0; i<=5; i++)
printf("x(%d)=%5.2lf p(%d)=%13.7e\n",
i,x[i],i,plyv(a,7,x[i]));
printf("\n");
}
void bply0(double xin,double yin,double a[21])
{
double x=xin;
double y=yin;
double z = 0;
// double a[21]={-157.6646,107.4548,-137.6695,-49.1798,61.5766,-15.4219,0.039778,-13.2057,33.0038,-7.0569,5.0611,5.0977,-16.3451,1.6553,0.0029376,-0.91358,-1.6222,2.6572,-0.079645,0.053844,0.022143};
double b[6][6]={0};
printf("x=%5.2lf, y=%5.2lf z=%10.4lf\n",x,y,z);
b[0][0] = a[0];
b[1][0] = a[1];
b[0][1] = a[2];
b[2][0] = a[3];
b[1][1] = a[4];
b[0][2] = a[5];
b[3][0] = a[6];
b[2][1] = a[7];
b[1][2] = a[8];
b[0][3] = a[9];
b[4][0] = a[10];
b[3][1] = a[11];
b[2][2] = a[12];
b[1][3] = a[13];
b[0][4] = a[14];
b[5][0] = a[15];
b[4][1] = a[16];
b[3][2] = a[17];
b[2][3] = a[18];
b[1][4] = a[19];
b[0][5] = a[20];
z = bply(b,6,x,y);
printf("\n");
printf("x=%5.2lf, y=%5.2lf z=%10.4lf\n",x,y,z);
printf("\n");
}
void main()
{
double x=0.233333333;
double y=500;
double a[21]={-157.6646,107.4548,-137.6695,-49.1798,61.5766,-15.4219,0.039778,-13.2057,33.0038,-7.0569,5.0611,5.0977,-16.3451,1.6553,0.0029376,-0.91358,-1.6222,2.6572,-0.079645,0.053844,0.022143};
x=(x-(0.076924))/(0.034819);
y=(y-(97.2882))/(85.3981);
bply0(x,y,a);
bply55(x,y,a);
}
#endif -
MATLAB应用——多项式与插值函数
2021-04-20 04:11:10面对自然科学和工程应用中的难题,大部分人无从入手,而个别人却能短时间内给出切实可行的解决方案,其差别往往在于驾驭数学知识的能力不同。现代计算机技术的应用不仅减少了计算错误,而且加强了数学应用者解决问题... -
一元稀疏多项式计算
2021-08-02 11:39:42设 a0,a1,…,an都是数域 F 中的数, n 是非负整数,那么表达式anxn +an-1xn-1+…+a2x2 +a1x1+ a0x0(an≠0) 叫做数域 F上一个文字 x 的多项式或一元多项式。 在多项式中,a0叫做零次多项式或常数项,a1x 叫做... -
计算多项式的导函数(缓存区问题)
2019-01-18 09:30:41计算多项式的导函数是一件非常容易的任务。给定一个函数f(x),我们用f'(x)来表示其导函数。我们用x^n来表示x的n次幂。为了计算多项式的导函数,你必须知道三条规则: (1)、(C)' = 0 如果C是常量 (2)、(C*x^n)' = C... -
【计算理论】计算复杂性 ( 多项式等价引入 | 多项式时间规约 )
2020-12-14 22:46:08一、多项式等价引入、 二、多项式时间规约 -
MDP4VRP:计算上下限为多项式函数的积分
2021-07-11 01:14:09基本功能包括: 为 VRP 构建图表将时间相关函数分配给 VRP 成本函数从 VRP 图构建 MDP 模型解决时间相关的 MDP 对分段多项式函数 (PPF) 进行函数计算,包括: 对于每一块是一个确定的多项式函数(例如 f(x)=c0+c1 x... -
多项式——多项式函数
2022-08-01 16:09:29多项式函数 -
一元多项式计算.doc
2021-10-12 11:49:04一元多项式计算.doc -
MATLAB 数据分析与多项式计算
2019-04-01 14:39:18Matlab中的数据分析与多项式计算 更新时间:2019·04·01 更新内容: 数据统计分析 函数 函数使用 描述 备注 Max [y,k]=Max(a)/Max(A) 取向量a或矩阵A的最大元素y为序号k对应的值 如果元素为复数则按模取... -
计算多项式的导函数
2016-12-10 16:42:00计算多项式的导函数 总时间限制:1000ms内存限制:65536kB描述 计算多项式的导函数是一件非常容易的任务。给定一个函数f(x),我们用f'(x)来表示其导函数。我们用x^n来表示x的n次幂。为了计算多项式的导函数,你... -
ppDer(pp):计算分段多项式样条的时间导数-matlab开发
2021-05-29 20:39:12% dpp = ppDer(pp) % % 计算分段多项式 (PP) 结构的时间导数% % 输入: % pp = 包含感兴趣轨迹的 PP 结构% % 输出: % dpp = 一个新的 PP 结构,它是 pp 的时间导数% % 注释: % --> pp 结构通常由 matlab 函数... -
Python实现多项式计算的四种方法
2017-12-30 22:21:10问题描述分别实现多项式求值的四种运算,若针对不同规模的输入值aa,各算法的运行时间,问题规模nn分别取10,50,100,150,200,300,400,500,10000,20000,50000,100000时绘制四种算法运行时间的比较图。... -
多项式计算的效率测试,多项式计算效率_PHP教程
2021-05-05 08:28:47多项式计算的效率测试,多项式计算效率多项式计算调用库函数pow方法和秦九韶算法,我们来测算下他们的运行效率计算函数f(x)=1+(Σxi/i)(i从1取到m);用ctime时间函数来测试运行时间,带入x=0.9来计算#include#include;... -
哈工大机器学习实验一多项式拟合正弦函数
2019-09-26 07:59:12实验题目: 多项式拟合正弦函数 学号: 1170300511 姓名: 易亚玲 一、实验目的 掌握最小二乘法求解(无惩罚项的损失函数) 掌握加惩罚项(2范数)的损失函数优化 掌握梯度下降法、共轭梯度法 理解过拟合、... -
AC日记——计算多项式的导函数 openjudge 1.5 38
2016-12-10 08:37:0038:计算多项式的导函数 总时间限制:1000ms内存限制:65536kB描述 计算多项式的导函数是一件非常容易的任务。给定一个函数f(x),我们用f'(x)来表示其导函数。我们用x^n来表示x的n次幂。为了计算多项式的导函数,你... -
第6章 MATLAB数据分析与多项式计算.ppt
2021-10-28 16:51:12第6章 MATLAB数据分析与多项式计算.ppt -
实验八 数据处理与多项式计算
2021-04-22 15:14:53实验八 数据处理与多项式计算 一、实验目的1. 掌握数据统计和分析的方法。2. 掌握数值插值与曲线拟合的方法及其应用。3. 掌握多项式的常用运算。二、实验内容1. 利用MATLAB提供的rand函数生成30000个符合均匀分布的... -
广义拉盖尔多项式:LaguerreGen 计算实值 alpha 的广义拉盖尔多项式 L{n, alpha}-matlab开发
2021-05-31 02:23:46此函数计算广义拉盖尔多项式 L{n,alpha}。 如果未提供 alpha,则 alpha 设置为零,此函数计算“正常”拉盖尔多项式。 输入: - n = 作为度级别的非负整数- alpha >= -1 实数(输入是可选的) 输出被格式化为与 ... -
最小二乘法(2)——多项式函数能够拟合非线性问题原理
2019-08-07 16:04:19泰勒公式是一种计算近似值的方法,它是一个用函数某点的信息描述在该点附近取值的公式。已知函数在某一点的各阶导数值的情况之下,泰勒公式可以用这些导数值做系数构建一个多项式来逼近函数在这一点的邻域中的值。... -
python计算多项式的方法
2022-03-03 20:18:56Python实现的多项式计算 -
逆拉普拉斯变换函数:计算与拉普拉斯变换关联的时间函数的函数句柄。-matlab开发
2021-05-30 15:24:40FUN = INVLAPFUN(B,A) 返回一个函数句柄,用于评估与拉普拉斯变换 B(s)/A(s) 关联的时间函数 FUN(t),其中 B 和 A 是包含多项式系数的相应行向量。 FUN = INVLAPFUN(TF) 使用 Control Toolbox 传递函数对象 TF。 ... -
一元多项式的计算
2015-03-21 16:16:14C语言 数据结构 课程设计,一元多项式的计算,附课程设计文档,C语言源代码 -
【计算理论】计算复杂性 ( 多项式时间规约 | NP 完全 ★ | 布尔可满足性问题 ) ★
2020-12-15 11:42:38一、多项式时间规约 分析、 二、NP 完全 ★ ( 计算理论最重要的概念 )