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