Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python中的重新编译和搜索计算微分多项式的系数_Python_Regex_Polynomials_Differentiation - Fatal编程技术网

用python中的重新编译和搜索计算微分多项式的系数

用python中的重新编译和搜索计算微分多项式的系数,python,regex,polynomials,differentiation,Python,Regex,Polynomials,Differentiation,测试多项式“2x^3+4x^2+8x-16”,下面的代码输出[6,8]作为微分多项式的系数。但是,输出应该是[6,8,8]。为什么函数GetNewCourters产生错误的结果?产生正确结果的好方法是什么 您不需要re模块,您可以使用sympy模块,但必须首先从下载。我不是一个心理专家,但我发现了一个类似的可能会帮助你 而且,只是想让你知道,指数不算作系数…这个问题可以更容易地通过使用反向查找断言来解决 COEFFICIENT_PATTERN = re.compile(r"(?<!x\^)

测试多项式“2x^3+4x^2+8x-16”,下面的代码输出[6,8]作为微分多项式的系数。但是,输出应该是[6,8,8]。为什么函数GetNewCourters产生错误的结果?产生正确结果的好方法是什么

您不需要re模块,您可以使用sympy模块,但必须首先从下载。我不是一个心理专家,但我发现了一个类似的可能会帮助你


而且,只是想让你知道,指数不算作系数…

这个问题可以更容易地通过使用反向查找断言来解决

COEFFICIENT_PATTERN = re.compile(r"(?<!x\^)(?<!x\^-)-?\d+")
coefficients = [int(c) for c in COEFFICIENT_PATTERN.findall(polynomial)]

看起来像一道数学题。Fwiw,我没有看到在包含我看到的唯一正则表达式的地方调用getNumbers。此外,文本2x^3+4x^2+8x-16的形式不适合表示计算机算法的方程式。在我看来,如果使用该正则表达式来获取数字,然后依赖于生成的数组,您将获得['2','3','4','2','8','-16']。这不代表2x^3+4x^2+8x^-16吗?如果没有显式的指数,比如+8x,那么这是否可以解释,因为这是缺少的部分?Sympy很好,但它也是一个相当大的依赖项。如果你在做一些简单的事情,那就太过分了。谢谢@sln我的回复中有``这个词,但在示例中忘记了:P
COEFFICIENT_PATTERN = re.compile(r"(?<!x\^)(?<!x\^-)-?\d+")
coefficients = [int(c) for c in COEFFICIENT_PATTERN.findall(polynomial)]
>>> COEFFICIENT_PATTERN.findall('2x^3+4x^2+8x-16')
['2', '4', '8', '-16']