在python中,** 就是指數(shù)運(yùn)算,所以我們習(xí)慣性的覺(jué)得
確實(shí)在數(shù)學(xué)中,這的確是正確的,但是在python中這么寫(xiě),你就會(huì)發(fā)現(xiàn)有一些錯(cuò)誤,
4**3=64
所以,64開(kāi)立方應(yīng)該是3,然而在python中的運(yùn)行結(jié)果如下:
64**(1/3)=3.9999999999999996
so interesting,我們?cè)谶\(yùn)行
16**(1/2)=4
這是對(duì)的,為啥開(kāi)立方就不對(duì)了呢,更有意思的是按照上面的寫(xiě)法,你會(huì)發(fā)現(xiàn)負(fù)數(shù)開(kāi)出來(lái)是復(fù)數(shù),這里有兩個(gè)fu數(shù)。
看個(gè)例子:
(-64)**(1/3)=(2+3.464101615137754j)
不應(yīng)該是-4嗎,怎么會(huì)出來(lái)復(fù)數(shù)呢?
這其實(shí)和優(yōu)先級(jí)有關(guān)系,(1/3)先運(yùn)行得到0.3333333333333333,然后在運(yùn)行 ** 指數(shù)運(yùn)算,那么有什么解決方法嗎
這里我用的是numpy
其它方法也有,不過(guò)我覺(jué)得這個(gè)比較好
補(bǔ)充:python中開(kāi)n次方根
利用pow(a, b)函數(shù)即可。需要開(kāi)a的r次方則pow(a, 1/r)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- Python 反轉(zhuǎn)輸出正整數(shù)的操作
- python反轉(zhuǎn)一個(gè)三位整數(shù)的多種實(shí)現(xiàn)方案
- Python 實(shí)現(xiàn)反轉(zhuǎn)整數(shù)的案例(很容易懂的那種)
- Python編程之求數(shù)字平方的實(shí)例
- Python3 完全平方數(shù)案例