我正在练习SymPy,发现Max
运算符无法解决值大于1
的情况。
n = Symbol('n', integer=True, positive=True)
Max(1,n) # this works fine
Max(2,n) # output Max(2, n)
我很困惑为什么当另一个值大于Max
时1
无法解决它。
答案 0 :(得分:1)
两个结果都是正确的。如果n
必须为正整数,则对于任何Max(1, n)
,n
的答案将为n
。但是对于Max(2, n)
,如果为n
,则答案为n > 1
,否则为2
。一种表示方式Max(2, n)
,这就是SymPy告诉您的内容。
取消对positive
的{{1}}约束,然后两个答案都将以与输入相同的形式出现,因为现在n
将不再是Max(1, n)
n
满足限制的所有可能值(所有整数)。
答案 1 :(得分:1)
您可以尝试将其改写为“分段式”,以明确查看Max的条件:
>>> Max(2,n).rewrite(Piecewise)
Piecewise((2, n <= 2), (n, True))