我知道如何声明整数符号:
from sympy import symbols
a, b, c, m, n = symbols('a b c m n', Integer=True)但是我希望符号是没有零的自然数(严格正整数)。我该怎么做呢?谢谢
编辑:
如果我计算丢番图方程,它也给出了负解,我只想要正解:
from sympy.solvers.diophantine import diophantine
from sympy import symbols
a, b, c, m, n = symbols('a b c m n', integer=True, positive=True)
a = n ** 2 - m ** 2
b = 2 * n * m
c = n ** 2 + m ** 2
diof = diophantine(n ** 2 + m * n - 500)
print(diof){(121,4),(499,-500),(95,-100),(499,1),(-40,-10),(40,-50),(-499,500),(-95,-5),(-40,50),(-95,100),(5,20),(-5,25),(-248,250),(-499,-1),(121,-125),(5,-25),(-121,125),(-5,-20),(-121,-4),(248,-250),(95,5),(-248,-2),(40,10),(248,2)}
发布于 2014-04-26 21:08:26
关于这件事,我打开了https://github.com/sympy/sympy/issues/7444。同时,你可以用老式的方法过滤解决方案。
>>> {(i, j) for i, j in diof if i > 0 and j > 0}
set([(5, 20), (40, 10), (95, 5), (121, 4), (248, 2), (499, 1)])https://stackoverflow.com/questions/23301941
复制相似问题