sympy.solve
解决不等式,这是代码
from sympy import Symbol, solve
x = Symbol('x', positive=True, integer=True)
ineq1 = x - 3 < 0
solution = solve((ineq1), x)
print(solution)
上面的程序产生x < 3
。结果是有道理的,我想得到一个由 2 个整数 1 和 2 组成的集合,
{1, 2}
。 我怎样才能做到这一点?
>>> from sympy import Range, oo, S, And
>>> from sympy.abc import x
>>> (x - 3 < 0).as_set().intersection(Range(1,oo))
{1, 2}
您也可以将 Range(1,oo)
替换为
S.Naturals
。您还可以使用复合表达式并将其集合与
S.Integers
:相交
>>> And(x>0,x<3).as_set().intersection(S.Integers)
{1, 2}