我知道多项式乘法的 horners 方法更快,但我不知道这里发生了什么是代码
public class horner{
public static final int n=10;
public static final int x=7;
public static void main(String[] args){
//non fast version
int a[]=new int[]{1,2,3,4,5,6,7,8,9,10};
int xi=1;
int y=a[0];
for (int i=1;i<n;i++){
xi=x*xi;
y=y+a[i]*xi;
}
System.out.println(y);
//fast method
int y1=a[n-1];
for (int i=n-2;i>=0;i--){
y1=x*y+a[i];
}
System.out.println(y1);
}
}
这两种方法的结果是不一样的 第一种方法的结果是
462945547
第二种方法的结果是
-1054348465
请帮忙
最佳答案
您在第二个循环中使用 y
:
y1=x*y+a[i];
这就是写两个函数会派上用场的地方——不可能重用同一个变量。
关于java - 关于多项式乘法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2891276/