首页 > 解决方案 > 我们如何使用 python 找到这个方程的答案?

问题描述

你好,我对 Python 的数学方面有点陌生,我正在尝试解决一个方程的方法:

a * (10**(n-1)) + x = y*x

其中'y'和'n'是已知的,我们必须找到'x'和'a'。现在我尝试了一些返回方程而不是值的方法:

from sympy.solvers import solve
from sympy import symbols, Eq

def remove_first_digit(n, y):
    a, x = symbols("a,x", integer=True)
    equation = Eq((10 ** (n-1)), ((y-1)*x)/a)
    return solve(equation, (x,a))
print(remove_first_digit(2, 7))

我期待值'a' = 3 和'x' = 5。我在这里做错了什么?

标签: pythonmathsympyalgebra

解决方案


答案是 x = 5 a/3 或 a = 3 x/5,任何满足这一点的数字组合都可以工作,而不仅仅是 3 和 5,你的程序可以完美运行。如果你想要 a = 3 和 x = 5,你需要做进一步的操作来减少可能的答案。


推荐阅读