1 回答

TA貢獻2065條經驗 獲得超14個贊
小心你的措辭:你得到的答案沒有任何“錯誤”。您希望以不同的形式得到答案,這很好,但給出的答案是正確的。
如果您考慮高斯有理數,您可以得到您想要的形式:
In [41]: e = z**2 + z + Rational(1, 4)
In [42]: e
Out[42]:
2 1
z + z + ─
4
In [43]: factor(e)
Out[43]:
2
(2?z + 1)
──────────
4
In [44]: factor(e, gaussian=True)
Out[44]:
2
(z + 1/2)
In [45]: t.inv()
Out[45]:
? 4?z + 4 -1 ?
? ────────────── ─────────────────?
? 2 ? 2 ??
? 4?z + 4?z + 1 ? z z 1 ??
? 4??- ── - ─ - ──??
? ? 4 4 16??
? ?
? 1 4?z ?
?──────────────── ────────────── ?
? ? 2 1? 2 ?
?4??- z - z - ─? 4?z + 4?z + 1 ?
? ? 4? ?
In [46]: t.inv().applyfunc(lambda e: factor(e, gaussian=True))
Out[46]:
? z + 1 1 ?
? ────────── ──────────?
? 2 2?
? (z + 1/2) (z + 1/2) ?
? ?
? -1 z ?
?──────────── ──────────?
? 2 2?
?4?(z + 1/2) (z + 1/2) ?
添加回答
舉報