【发布时间】:2013-08-10 05:30:53
【问题描述】:
我有一个Polynomial 类,它有一个get_vect 成员函数,它将整数存储在一个向量中,该向量表示多项式的系数。现在,我正在尝试使用 Multiply 非成员函数将两个多项式相乘,但是在向量的实际乘法中我遇到了困难。到目前为止,我所拥有的是如下所示:
Polynomial Multiply(const Polynomial & poly1, const Polynomial & poly2)
{
vector<int> Poly1 = poly1.get_vect();
vector<int> Poly2 = poly2.get_vect();
vector<int> Poly3;
if( Poly1.size() < Poly2.size() )
{
for(size_t i = 0 ; Poly2.size()-Poly1.size() ; ++i )
{
Poly2.push_back(0);
}
}
else if( Poly1.size() > Poly2.size() )
{
for(size_t i = 0 ; Poly1.size()-Poly2.size() ; ++i )
{
Poly1.push_back(0);
}
}
return Poly3;
}
我看到它必须遵循以下模式:
【问题讨论】:
-
我不确定为什么需要任何模式。当您乘以相同的底数时,会添加指数。
-
这张照片目前不可用。 (你的图片链接不好)
-
@BenjaminLindley,对我来说效果很好。无论如何,我之前忘记将其添加到问题中。
-
@LoieBenedicte:我很确定我下面的嵌套循环直接对应于您发布的图表中的红色/橙色对角线。
标签: c++ vector multiplication polynomial-math vector-multiplication