繁体   English   中英

从多项式函数字符串动态分配数组

[英]Dynamically Allocating an Array from a Polynomial Function String

所以我有一个多项式加法问题,如下所示:

(1*x+2*x^3-1*x+7)+(1+1*x^2-1*x+1*x^4)

我需要弄清楚如何提取系数和指数的数字,并将它们输入到动态分配的2D数组中(从这里我可以对它们进行排序并在输出答案之前将它们加在一起)。

我很失落如何做到这一点,因为多项式可以是任何度数的顺序,包括任意数量的项。 在我提取所有数字后,我可以动态分配它们。 我需要帮助的部分是:

  • 提取所有数字
  • 区分它们以查看它是系数还是指数
  • 允许任何数量的术语发生这种情况

如果有人能够回答这个问题或至少指出我正确的方向,我们将不胜感激。

您的问题看起来像是解析和评估。

  • Step1:你需要解析字符串,假设有一个中缀表达式,这样你就可以拉出系数

  • 步骤2:将这些系数推入矢量/双端队列等以执行多项式计算。

以下是一些很好的例子:

在C ++中从字符串中计算算术表达式

在C ++中评估数学表达式的最佳方法是什么?

要从字符串中提取系数,您需要创建解析器。 你可以使用像boost.spirit这样的特殊库,你可以使用特殊的工具来构建像Flex这样的解析器,或者你可以使用正则表达式自己动手制作。

要存储系数,你可以使用std::vector<int>使用索引作为x的幂,所以对于1 * x + 2 * x ^ 3-1 * x + 7,你的向量将有数据:

{ 7, -1, 0, 2 } // 7*x^0 + -1*x^1 + 0*x^2 + 2*x^3 

那么你不需要对它们进行排序以添加系数。 要存储所有多项式,请相应地使用std::vector<std::vector<int>>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM