複數域開方就是這樣的。開幾次方就有幾個根。明顯Py返回的是所有根裡輻角主值不小於零且最接近零的那個。最簡單的辦法就是利用³√x這個函式是個奇函式,給|-8|,就是取絕對值開方,因為正數的輻角是0,在複數域開方,實根(輻角是零)正好就是所有根裡輻角主值不小於零且最接近零的那個,必定返回的是這個實根,然後結果前面補個負號(奇函式性質,f(x)=-f(-x) )。。 所有負數在複數域開根號要想返回實根都可以用這個方法。
**運算子和pow函式確實是這樣的。
你可以試一下,在開方之前先取絕對值,開方之後再把符號補上,類似於下面這樣。
-8的三次方根有三個,第一個就是1+根號3i,第二個才是-2,第三個是1-根號3i。它只顯示了第一個。
不僅是python,這個情況在C/C++、JAVA等裡面也是一樣的,不是錯誤,因為這些語言不是用來專門算算術的,它們也不知道你的文化程度,說實話能給出一個根已經很給面子了。
沒問題啊,本來就是一個實根,兩個虛根啊