多项式求值
对于多项式\(f[n]=a[n]\cdot x^n+a[n-1]\cdot x^{n-1}+\cdots +a[1]\cdot x+a[0]\)
普通求法:
double f(int a[],int n,double x)
{
double p=a[0];
for(int i=1;i<=n;i++)
p+=(a[i]*pow(x,i));
return p;
}
秦九韶算法:
double f(int a[],int n,double x)
{
double p=a[n];
for(int n;i>0;i--)
p=p*x+a[n-1];
return p;
}
\[f[n]=a[n]\cdot x^n+a[n-1]\cdot x^{n-1}+\cdots +a[1]\cdot x+a[0]
\\
=(a[n]\cdot x^{n-1}+a[n-1]\cdot x^{n-2}+\cdots +a[1])\cdot x+a[0]
\\
=(\cdots((a[n]\cdot x+a[n-1])\cdot x+\cdots+ a[1])\cdot x+a[0]
\]
\\
=(a[n]\cdot x^{n-1}+a[n-1]\cdot x^{n-2}+\cdots +a[1])\cdot x+a[0]
\\
=(\cdots((a[n]\cdot x+a[n-1])\cdot x+\cdots+ a[1])\cdot x+a[0]
\]
秦九韶算法的思想我觉得还是将之前已经处理过的项,物尽其用,使下一项的计算作用到上一项里,让前后两项并行处理。和枚举中提过的最大子列和的算法二,有异曲同工之妙。
原文链接: https://www.cnblogs.com/Degree37/p/12541514.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/336725
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!