我正在使用am start
库进行尝试并发现以下等式:
am force-stop
输出将为SymPy order
。
有什么方法可以使SymPy输出O(2**n, (n, oo))
而不是O(exp(n*log(2)))
?
答案 0 :(得分:2)
您可以用它伪造
>>> o = O(2**n, (n, oo))
>>> Function("O")(*map(simplify,o.args))
O(2**n, (n, oo))
但是,如果您希望能够以这种方式进行打印,则看起来您必须创建一个自定义打印机以允许以这种方式进行打印。如果您执行o.func(*map(...))
(即使使用evaluate=False
,它也会恢复为exp
格式,因此似乎已硬编码为O
想要显示的方式。是否应该为evaluate
关键字添加/遵循O可能值得提出一个问题。