Python 3.6:复数的分层

时间:2017-05-03 09:56:25

标签: python division complex-numbers python-3.6 floor-division

我需要对一个复数进行分区,但似乎在Python 3.x中删除了复数的分区。

这有什么变通方法吗?任何想法都将不胜感激。

例如

(2 + 3i) // (complex anything) will throw an error.

3 个答案:

答案 0 :(得分:3)

python 3中的复数定义为虚部为j,而不是i

你是对的,在Python 3中你不能再计算复数的分层,但如果你需要一个解决方法,你需要指定你想要它的行为方式。

在任何情况下,您都需要实现一个继承自complex的新类,并覆盖__floordiv__方法

答案 1 :(得分:1)

除非(anything)(2+3j)的倍数,否则您的答案也会很复杂,因此不能很好地定义分层。您可以通过乘以(anything).conjugate / (abs(anything)**2)

来实现除法

答案 2 :(得分:0)

我刚刚找到了mpmath库。它有大量的工具,包括复杂数字的地板和模块。它似乎实际上包含在SymPy中。