Horner法则,是计算多项式的一种方法,采用最少的乘法次数来进行多项式求值。
例如,多项式F(x)=A(n)*x^n+A(n-1)*x^(n-1)+A(n-2)*x^(n-2)+A(n-3)*x^(n-3)+......+A1*x+A0,对于某个指定的x值m,在使用Horner法则后,变化为F(m)=(...((A(n)*m+A(n-1))*m+...+A1)m+A0。
可以看出,Horner规则,是递归概念的一个典型实例,对表达式进行观察后,可采用逐步升级的递归方式,从低系数向高系数进行求值计算,程序如下:
其中,iConf为系数数组,n为这个数组的元素个数-1,xstart为开始计算的x,一般从0开始,xsign为指定要计算的x值。