我需要对一个复数进行地板除法,但似乎在 Python 3.x 中删除了复数的地板除法。
有什么解决方法吗?任何想法,将不胜感激。
例如。
(2 + 3i) // (complex anything) will throw an error.
我需要对一个复数进行地板除法,但似乎在 Python 3.x 中删除了复数的地板除法。
有什么解决方法吗?任何想法,将不胜感激。
例如。
(2 + 3i) // (complex anything) will throw an error.
python 3 中的复数定义为虚部j
,而不是i
。
你是对的,在 Python 3 中你不能再计算复数的底除法,但是如果你需要一个解决方法,你需要指定你希望它的行为方式。
在任何情况下,您都需要实现一个继承自 的新类complex
,并覆盖该__floordiv__
方法
除非(anything)
是 的倍数(2+3j)
,否则您的答案也将很复杂,因此地板除法没有明确定义。您可以通过乘以实现除法(anything).conjugate / (abs(anything)**2)
我刚刚找到了 mpmath 库。它有大量的工具,包括用于复数的 floor 和 mod。看来它实际上包含在 SymPy 中。