Java 多项式乘法问题
我知道多项式脉冲应用的horners方法更快,但我不知道这里发生的是代码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;
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];