我想计算由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形式。