python 开立方注意事项

来源:互联网 发布:淘宝店铺号怎么设置 编辑:程序博客网 时间:2024/05/17 04:19

python 开立方注意事项


在python中,** 就是指数运算,所以我们习惯性的觉得

n3=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

其它方法也有,不过我觉得这个比较好

原创粉丝点击