在python中,** 就是指數運算,所以我們習慣性的覺得
確實在數學中,這的確是正確的,但是在pyt中這麼寫,你就會發現有一些錯誤,
4**3=64
所以,64開立方應該是3,然而在python中的執行結果如下:
64**(1/3)=3.9999999999999996
so interesting,我們在執行
16**(1/2)=4
這是程式設計客棧對的,為啥開立方就不對了呢,更有意思的是按照上面的寫法,你會發現負數開出來是複數,這裡有兩個fu數。
看個例子:
(-64)**(1/3)=(2+3.464101615137754j)
www.cppcns.com
不應該是-4嗎,怎麼會出來複數呢?
這其實和優先順序有關係,(1/3)先執行得到0.3333333333333333,然後在執行 ** 指數運算,那麼有什麼解決方法嗎
這裡我用的是numpy
np.cbrt(-64)=-4.0
其它方法也有,不過我覺得這個比較好
補充:python中開n次方根
利用pow(a, b)函式即可。需要開a的r次方www.cppcns.com則pow(a, 1/r)。
本文標題: 基於python 開立方的注意事項說明
本文位址:
python 開立方注意事項
在python中,就是指數運算,所以我們習慣性的覺得n 3 n 1 3 確實在數學中,這的確是正確的,但是在python中這麼寫,你就會發現有一些錯誤,4 3 64所以,64開立方應該是3,然而在python中的執行結果如下 64 1 3 3.9999999999999996so interesti...
python 爬蟲的注意事項
報錯1.selenium庫的使用 selenium.common.exceptions.webdriverexception message unknown error cannot find chrome binary 有兩種可能 沒有chromedriver 沒有找到chrome 對於第一種 用...
編寫基於DSP程式的注意事項
使用c c 語言編寫基於dsp程式的注意事項 1 不影響執行速度的情況下,可以使用c或c c 語言提供的函式庫,也可以自己設計函式。2 要非常謹慎地使用區域性變數,根據自己專案開發的需要,應盡可能多地使用全域性變數和靜態變數。3 一定要非常重視中斷向量表的問題。中斷向量表中的中斷名是任意取定的,ds...