在我为学校点评时,我似乎一点都不明白。那么2x ^ 3-6x ^ 2 + 2x -1的运行时间为O(n ^ 3)但((2x-6)x + 2)x-1的运行时间如何为O(n)呢?也有人可以向我解释此代码吗?我不确定res和c代表什么,休息和系数?我知道该函数会评估多项式,但无法逐行理解。
public BigInteger eval(BigInteger x)
{
BigInteger res=null;
BigInteger c=null;
for(Term t:polynomial)
{
if(res==null)
{
res=(x).pow(t.getExponent()).multiply(t.getCoefficient());
c=BigInteger.valueOf(t.getExponent());
c=c.subtract(BigInteger.valueOf(1));
}
else
res=res.add((x).pow(t.getExponent()).multiply(t.getCoefficient()));
}
return res==null?new BigInteger("0"):res;
}