一、问题描述
设 n n n阶多项式 P n ( x ) P_n(x) Pn(x)有以下形式:
P n ( x ) = a n x n + a n − 1 x n − 1 + . . . + a 2 x 2 + a 1 x + a 0 (1) P_n(x)=a_nx^n+a_{n-1}x^{n-1}+...+a_2x^2+a_1x+a_0\tag 1 Pn(x)=anxn+an−1xn−1+...+a2x2+a1x+a0(1)
秦九韶方法(1247年提出)或霍纳方法(Horner’s method),是计算多项式值的一种有效算法,其本质上是一种嵌套乘法。例如可以将5次多项式写成嵌套乘法形式:
P 5 ( x ) = ( ( ( ( a 5 x + a 4 ) x + a 3 ) x + a 2 ) x + a 1 ) x + a 0 (2) P_5(x)=((((a_5x+a_4)x+a_3)x+a_2)x+a_1)x+a_0\tag 2 P5(x)=((((a5x+a4)x+a3)x+a2)x+a1)x+a0(2)
采用此方法, n n n次多项式求值只需要 n n n次乘法和 n n n次加法运算,而直接采用式 ( 1 ) (1) (1)计算,则需要 n ( n + 1 ) 2 \frac{n(n+1)}{2} 2

本文介绍了一种高效计算多项式值的方法——霍纳方法(或秦九韶方法),该方法通过嵌套乘法减少了计算次数。文章详细解释了霍纳方法的原理,并给出了C语言实现代码。
最低0.47元/天 解锁文章
2698

被折叠的 条评论
为什么被折叠?



