Solve system of 2 integer equations(解2个整数方程组)
本文介绍了解2个整数方程组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一组有三个未知数的两个方程,它有一些条件。x、y和z必须都大于零。我怎么才能解决这个问题?只有一个解决方案,我已经知道了,但我想知道如何正确使用它。
以下是公式:
100 = x + y + z100 = 10x +2.5y + 0.5z
需要查找x、y和z。它们是正整数。
这是我的代码,但它不起作用:
from sympy import symbols, Eq, solve
x, y, z = symbols('x y z')
eq1 = Eq(x + y + z, 100)
eq2 = Eq(x*10 + y*2.5 + z*0.5, 100)
#eq3 = x, y, z must all be larger than zero and integers
solution = solve((eq1,eq2), (x,y,z))
solution
推荐答案
此类问题可以通过Z3py,SAT/SMT求解器:
解决from z3 import Ints, solve
x, y, z = Ints('x y z')
sol = solve(x + y + z == 100, x * 100 + y * 25 + z * 5 == 1000, x > 0, y > 0, z > 0)
print(sol)
输出:[z = 90, y = 6, x = 4]。
请注意,通常情况下,Z3只寻找一个解决方案。要找到后续的解决方案,需要添加一个条款来禁止已经找到的解决方案。(在这种情况下,似乎只有一个解决方案。)
这篇关于解2个整数方程组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:解2个整数方程组
基础教程推荐
猜你喜欢
- Discord.py 缺少必需的参数 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
