证明Horner函数(多项式评估)

时间:2013-08-23 18:49:52

标签: algorithm

我在Steven S. Skiena的算法设计手册第二版中完成了练习1-8:

enter image description here

有说服力吗?

3 个答案:

答案 0 :(得分:4)

通常在感应校样中,您将步骤彼此分开。诱导步骤对我来说太含蓄了。我会这样做:

1)对于n = 1 horner([a0],x)= a0

2) horner([a0,...,a(n + 1)],x)= x * horner([a1,...,a(n + 1)] ,x)+ a0 = x * horner([b0,...,bn],x)+ a0,其中bn = a(n + 1)

3)因此对于n具有horner,n + 1的horner可以用2)计算

你的证据很好,但正如我所说的那样 - 感应步骤应该明确加以重读 - n + 1的解决方案如何从n(m在你的情况下)的解决方案中得到,在一个单独的证明步骤中。

答案 1 :(得分:1)

使用循环不变式

使用归纳法

  1. 归纳假设

Induction Hypothesis

  1. 基本案例

Base case

  1. 归纳步骤

Induction step (a) Induction step (b)

  1. 结论

Conclusion

答案 2 :(得分:0)

我记得这一点的方法是将P(x)写成:

P(x) = a_0 + x(a_1 + x(a_2 + ... + x(a_{n-1} + x a_n)) ... ))

直接跟随for循环。