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)

Другие вопросы по тегам