Python 3.6: этажное деление комплексного числа
Мне нужно разделить по полу комплексное число, но похоже, что разделение по полу по комплексным числам было удалено в Python 3.x.
Есть ли обходные пути для этого? Любые идеи были бы хорошы.
например.
(2 + 3i) // (complex anything) will throw an error.
3 ответа
Я только что нашел библиотеку mpmath. Он имеет большое количество инструментов, включая пол и мод для комплексных чисел. Похоже, что он на самом деле включен в SymPy.
Комплексные числа в Python 3 определяются с их мнимой частью как j
не i
,
Вы правы в том, что в Python 3 вы не можете больше вычислять деление комплексных чисел по полу, но вам нужно указать, как вы хотите, чтобы он вел себя, если вам нужен обходной путь.
В любом случае вам нужно будет реализовать новый класс, который наследует от complex
и переопределить __floordiv__
метод
Если не (anything)
это кратное (2+3j)
тогда ваш ответ также будет сложным, поэтому разделение по этажам не является четко определенным. Вы можете реализовать деление, умножив на (anything).conjugate / (abs(anything)**2)