我有一个问题需要解决以下问题:
*给出特殊多项式: 和输入:系数a [n],a [n-1],...,a [0],参数x
在C#或Pseudocode中创建一个算法,它将使用Horner的方法来求解x的特殊多项式。*
我创建了一个用Horner方法解决默认多项式函数的算法,但它不适用于特殊函数,因为指数是平方的。我不知道如何修改算法以尊重平方指数,因为据我所知,Horner的方法不使用指数。 这是我的代码:
int[] a = new int[] { 0, 3, 2, 1};//a[0] - a[n]
int n = 3;
int x = 2;
double r = a[n];
for (int i = n - 1; i >= 0; i--)
{
r = r * x + a[i];
}
Console.WriteLine(r);
我很感谢你的帮助!
答案 0 :(得分:0)
4 * 4 = 1 + 3 + 5 + 7
x ^(4 * 4)= x ^ 1 * x ^ 3 * x ^ 5 * x ^ 7
a(4)* x ^(4 * 4)+ a(3)* x ^(3 * 3)+ a(2)* x ^(2 * 2)+ a(1)* x + a (0)=(((a(4)* x ^ 7 + a(3))* x ^ 5 + a(2))* x ^ 3 + a(1))* x ^ 1 + a(0)
您可以通过在每次迭代时将前一个奇数幂乘以x ^ 2来跟踪x的奇数幂
答案 1 :(得分:0)
让我重新审视钝方和Horner's method来评估给定单个变量 x 中的多项式aₙxⁿ+ ... + a2x2 + a1x + a0值 x 0 :
霍纳的方法可以节省工作量,因为 x 0 的功率必须提高到(更低)和(因为这个原因)更少(只需要/使用 x 0 < / em>的)。
如何使用 square exponents 来保存评估多项式的工作?
在计算更大的权力时重复使用较小的权力。
就像相邻的正方形相差而奇数二相对于下一个较低的一对,相邻的平方功率是奇数幂分开
下一个奇数幂是当前的一个乘以平方
从“最高系数”评估到最低
有权力评估备忘或明确保留权力(使用) 可能最容易预先设置它们。
技巧组合(仍然) 霍纳的方法?
你决定。 (以及您的导师/老师/面试官。)