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