如何使SymPy Max(2,n)为n?

时间:2019-05-08 03:03:09

标签: python max sympy

我正在练习SymPy,发现Max运算符无法解决值大于1的情况。

n = Symbol('n', integer=True, positive=True)
Max(1,n)    # this works fine
Max(2,n)    # output Max(2, n)

我很困惑为什么当另一个值大于Max1无法解决它。

2 个答案:

答案 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))