我玩的游戏有一个谜题,涉及解决以下等式:
x*411 + y*295 + z*161 = 3200
Run Code Online (Sandbox Code Playgroud)
不想以为我只是打了它sympy,我还没有真正用到那一点:
>>> from sympy import *
>>> x, y, z = symbols('x y z', integer=True, positive=True)
>>> solve(x*411 + y*295 + z*161 - 3200, [x, y, z])
[{x: -295*y/411 - 161*z/411 + 3200/411}]
Run Code Online (Sandbox Code Playgroud)
嗯,这只给了我一个依赖的解决方案,但我想在域中所有可能的解决方案我将变量约束到,例如(假设没有其他解决方案)[{x: 4, y: 2, z:6}]或[(4, 2, 6)]
当然我现在可以在嵌套循环中手动替换两个变量,或者手动解决它(就像我上面的解决方案一样),但我想知道如何让sympy(或其他库)为我做这件事.