返回题库

Horner 法则计算多项式

Horner's Algorithm

专题
Algorithmic Programming / 算法编程
难度
L4

题目详情

计算多项式

y=A0+A1x++Anxn.y=A_0+A_1x+\cdots+A_nx^n.

给出一种高效算法。

Compute polynomial y=A0+A1x++Anxn.y = A_0 + A_1 x + \dots + A_n x^n.

解析

朴素计算可能重复幂运算导致 O(n2)O(n^2)

Horner 法则可做到 O(n)O(n)

y=(((Anx+An1)x+An2)x++A1)x+A0.y=(((A_n x + A_{n-1})x + A_{n-2})x+\cdots + A_1)x + A_0.

Original Explanation

Naive is O(n2)O(n^2). Horner's method is O(n)O(n): y  =  (((Anx+An1)x+An2)x+A1)x+A0.y \;=\; \bigl(\dots((A_n\,x + A_{n-1})\,x + A_{n-2})\,x \dots+ A_1\bigr)\,x + A_0.