作者: Zazel | |
日時: 2009/8/13(13:12) |
Zazelです。 あるところ(^_^) に書かれていた、二次元方程式の解の公式。 Pythonならば複素数が扱えるなと入れてみたら… >>> sol = lambda a,b,c:[(-b+k*(b*b-4*a*c)**(1/2))/(2*a) for k in (1,-1)] >>> sol(1,2,3) [(-0.9999999999999999+1.4142135623730951j), (-1-1.4142135623730951j)] この演算で実部に違いが出てくるのはまずいような気がします。 それに、なぜ違いが発生するのかも理解できません。 「Python-3.1 はまだunstableだから」という理由で片付けてよければ これ以上気にしませんが。 使ったのは Python 3.1 [GCC 4.2.1 20070719 [FreeBSD]] on freebsd7 です。 (* SEKI Masatoshi / zazel.ts@..."cx" *) (* Would you hold my hand? Softly, let's linger. *)