简化Python中的算术表达式

问题描述 投票:0回答:1

我正在尝试编写一个Python代码来简化给定的表达式(为了求解非齐次线性丢番图方程。)例如,给定输入:

7x+13y = 1

代码将返回

1=7-(1*(13-(1*7))

我希望能够简化输出的右侧,使其仅以输入的系数表示。在这种情况下:

1=7-((1*13)+(1*-(1*7))
1=7-(1*13)-(-1*7)
1=(2*7)+(-1*13)

所以

1=(2*7)+(-1*13)

是最终结果(我可以提取 2 和 -1,乘以原始输入的常数以获得 x 和 y 的整数解集。)

我尝试寻找并实现 Sympy Simply,但是他们都没有为上述任务提供任何帮助。他们要么返回原始输出,要么返回错误消息。

python math sympy
1个回答
0
投票

看起来您正在寻找 SymPy 提供的扩展欧几里得算法

gcdex
:

In [1]: from sympy import gcdex

In [2]: gcdex(7,13)
Out[2]: (2, -1, 1)
© www.soinside.com 2019 - 2024. All rights reserved.