/*
多项式求值问题:
有如下多项式:
P (x)= An*x^n + An-1*x^(n-1) + ... +a1*x + a0
如果分别对每一项求职,需要n*(n+1)/2个乘法,效率很低
关键:采用递归式
Pn(x) = An*x^n + An-1*x^(n-1) + ... +a1*x + a0
= ((...(((An)x + An-1)x + An-2)x ...)x + A1)x + A0
自己写出递归方程:
Pn(x) = ( Pn-1(x) + An )x
其实就是:
A[x] =[ A[x-1] + 系数 ]*x
P1(x) = ( P0(x) + A1 )x,n=0,P0 = An
秦九韶算法:
y(k) = a(k) + x*y(k+1)
y(n) = a(n)
这个方法很牛逼,但是注意,采用了逆序推算的原理,因为必须要使最后一项为
An*x^n
y(n-1) = y(n)*x + A[n-1] = A[n]*x + A[n-1]
y(n-2) = [ A[n]*x + A[n-1] ] * x + A[n-2]
输入:
5(输入系数) 2(x的值)
1 2 3 4 0
输出:
49.00【1+2*x+3*x^2+4*x^3】
*/
/*
关键:
1 秦九韶算法:
y(k) = a(k) + x*y(k+1)
y(n) = a(n)
这个方法很牛逼,但是注意,采用了逆序推算的原理,因为必须要使最后一项为
An*x^n
y(n-1) = y(n)*x + A[n-1] = A[n]*x + A[n-1]
y(
算法设计与分析:第二章 递归 2.7多项式求值问题
最新推荐文章于 2020-12-28 16:27:49 发布