我遇到了一個奇怪的問題,在這兩個的Python 2和Python 3爲什麼Python需要永遠評估1 ** 4 ** 4 ** 4 ** 4?
>>> 1**4**4**4
1L
which seems fine, but when I do this:
>>> 1**4**4**4**4
它淹沒了CPU和永遠不會完成。
爲什麼?
我也運行這些來查看它是否與權力的功能,或與**運營商,它似乎只是**運營商。
>>> (((((1**4)**4)**4)**4)**4)
1
>>> pow(pow(pow(pow(pow(pow(1,4),4),4),4),4),4)
1
>>> pow(pow(pow(pow(pow(pow(1.0,4),4),4),4),4),4)
1.0
>>> pow(pow(pow(pow(pow(pow(1L,4),4),4),4),4),4)
1L
>>> 1L**4**4**4
1L
我也試過另一種語言,它似乎只是Python。
爲什麼不能以微秒爲單位進行評估?有人可以解釋CPU時間在做什麼嗎?
對於我不理解的操作順序,有沒有非直觀的東西?
另一件需要注意的事情是,窺孔優化器將預先計算最右邊的'4 ** 4',所以真正的比較是在'1 ** 4 ** 256'和'1 ** 4 ** 4 * * 256'。 – roippi 2014-09-25 17:42:41
好的。我覺得是這樣。謝謝大家。 – 2014-09-25 17:51:37