gpt4 book ai didi

python - (Python) 求解一个未知数的方程,用方程找到该数字

转载 作者:行者123 更新时间:2023-12-01 09:08:45 26 4
gpt4 key购买 nike

我编写了一个代码(为了乐趣和练习)来平衡化学方程式。我想尝试平衡 N + A 所以它 = Z

N = 2
A = 2
Z = 6
if N + A != Z:
print('X')
balancer = ???

平衡器应该是 3,这样如果我创建一个等式,例如 (平衡器 x N) + A = Z,它就会成立。如何在不直接输入的情况下使平衡器变为三个。

谢谢:)

最佳答案

您可以手工完成基本代数:

(balancer * N) + A = Z
(balancer * N) = Z - A # subtract A from both sides
balancer = (Z - A) / N # divide both sides by N

…然后将其转换为代码就很简单了——最后一行实际上是有效的 Python 代码,没有任何更改。

<小时/>

或者,如果您希望 Python 为您执行此操作,只需指定 (balancer * N) + A = Z作为一个方程……Python 没有内置任何东西来做到这一点,但有像 SymPy 这样的代数库要做的事。

您真的很想完成整个教程,但简单地说......

首先,你必须首先告诉它你的变量是变量:

>>> from sympy import symbols, solve, Eq
>>> A, N, Z, balancer = symbols('A N Z balancer')

然后,建立一个方程。左侧可以是 (balancer * N) + aZ ,但你不能只输入 ===它们之间;你必须使用Eq :

>>> equation = Eq((balancer * N) + A, Z)    

现在您可以替换变量的值:

>>> equation.subs(dict(N=2, A=2, Z=6))
Eq(2*balancer + 2, 6)

最后,找出有效的解决方案:

>>> solve(equation.subs(dict(N=2, A=2, Z=6))
[2]

或者,如果您希望用代数方法解决它,然后进行替换,而不是相反:

>>> solve(equation, 'balancer')
[(-A + Z)/N]
>>> [s.subs(dict(N=2, A=2, Z=6)) for s in solve(equation, 'balancer')]
[2]

关于python - (Python) 求解一个未知数的方程,用方程找到该数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51831709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com