Java 多项式乘法问题

Java 多项式乘法问题,java,algorithm,Java,Algorithm,我知道多项式脉冲应用的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;

我知道多项式脉冲应用的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
请帮助查看此循环:

for (int i=1;i<n;i++){ 
            xi=x*xi; 
            y=y+a[i]*xi; 
        } 

for(int i=1;i您在第二个循环中使用的
y

y1=x*y+a[i];

这就是编写两个函数的方便之处——不可能重复使用同一个变量。

您好,我已经为您格式化并缩进了您的代码。请花一点时间查看我所做的修订,以便您将来可以看到如何做同样的事情:)谢谢抱歉,很酷的错误谢谢Kobi,我没有注意
y1=x*y+a[i];