python 開立方注意事項

2021-08-08 14:21:42 字數 620 閱讀 5873

在python中,** 就是指數運算,所以我們習慣性的覺得n√

3=n∗

∗(1/

3)確實在數學中,這的確是正確的,但是在python中這麼寫,你就會發現有一些錯誤,

4**3=64
所以,64開立方應該是3,然而在python中的執行結果如下:

64**(1/3)=3.9999999999999996
so interesting,我們在執行

16**(1/2)=4
這是對的,為啥開立方就不對了呢,更有意思的是按照上面的寫法,你會發現負數開出來是複數,這裡有兩個fu數。看個例子:

(-64)**(1/3)=(2+3.464101615137754j)
不應該是-4嗎,怎麼會出來複數呢?

這其實和優先順序有關係,(1/3)先執行得到0.3333333333333333,然後在執行 ** 指數運算,那麼有什麼解決方法嗎

這裡我用的是numpy

np.cbrt(-64)=-4.0
其它方法也有,不過我覺得這個比較好

基於python 開立方的注意事項說明

在python中,就是指數運算,所以我們習慣性的覺得 確實在數學中,這的確是正確的,但是在pyt中這麼寫,你就會發現有一些錯誤,4 3 64 所以,64開立方應該是3,然而在python中的執行結果如下 64 1 3 3.9999999999999996 so interesting,我們在執行 1...

開立方筆演算法

開立方筆演算法 陳梓瀚今年在某次物理競賽中忘了帶計算器,需要計算開立方。當時不知道怎麼筆算,所以只好一位一位地試。因此,我便想研究出一種開立方的筆算方法 我知道現在有,但是苦於找不到,所以只好自己來了 在剛開始研究是我不知道該如何入手,所以就去找了初二時候的代數書,裡面有開平方筆演算法和推導過程。它...

python 注意事項

from functools import reducereduce 函式會對引數序列中元素進行累積。函式將乙個資料集合 鍊錶,元組等 中的所有資料進行下列操作 用傳給 reduce 中的函式 function 有兩個引數 先對集合中的第 1 2 個元素進行操作,得到的結果再與第三個資料用 func...