我想计算由coefficients of x^i计算得出的(x+i1)*(x+i2)*....*(x+in)(和最后一个数字),其中in是整数。

例如,使用(x-1)(x-3)=x^2-4x+3,我可以这样计算系数:

 x^2's is always 1
 x's is i1+i2
and the last number is `i1*i2`


当我的括号大于2时,问题就来了。我将得到(grade 2 poly)*( grade 1 poly)并且我描述的算法不起作用,因为将有3个coef。在第一个括号中,我的算法仅适用于2。基本上,我正在寻找一个概括。我可以使用哪种算法,或者要使用任何Java库或函数?

最佳答案

最简单的方法是将每个附加项重复乘以。
假设您有一个double[] coe,其中coe[j]是示例中的ij,并且您有一个条件in = nextTerm:

double[] multiply(double[] coe, double nextTerm){
    double[] product=Arrays.copyof(coe,coe.length+1);
    for(int i=0;i<coe.length;++i)
        product[i+1]+=nextTerm*coe[i]
    return product;
}


经过一些修改,可以将其用于ax + b形式。

10-05 22:17