我的作业中有一个关于霍纳算法的作业问题。 我使用了算法的标准C ++实现。
int horner(int poly[], int n, int x)
{
int result = poly[0]; // Initialize result
// Evaluate value of polynomial using Horner's method
for (int i=1; i<n; i++)
result = result*x + poly[i];
}
然而,该算法对于每个x具有O(n)的效率。现在考虑在同一组系数上有许多x被替换。我有了这个主意,因为我的老师每次都使用相同的常量来测试我的代码。
是否没有更有效的方法在同一组系数上替换不同的x而不必以效率O(n)进行第二轮算法?