Python计算 1的9999999次方,不到1s就得出答案!是如何处理的?
生活随笔
收集整理的這篇文章主要介紹了
Python计算 1的9999999次方,不到1s就得出答案!是如何处理的?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題引發
網友計算1的9999999次方,不到1s就得出答案。那python是如何處理的?
>>> a=1 >>> i=a**9999999 >>> print(i) 1而計算2的2222222次方,python卻算了將近半分鐘(驍龍845平臺),
遇到問題沒人解答?小編創建了一個Python學習交流QQ群:895817687 尋找有志同道合的小伙伴, 互幫互助,群里還有不錯的視頻學習教程和PDF電子書! >>> a=2 >>> i=a**2222222 >>> print(i) 略去,太長相信對于python還不太熟悉的朋友會感到很奇怪,為什么內部處理上時間差距這么大,python究竟是如何運作的呢?
問題解答
求解形如a^n的值,可以使用快速冪算法,只需要O(logn)次乘法運算。每次乘法運算的時間是與數的位數的平方成正比。
計算1^n無需考慮乘法運算的時間,所以總共只需要O(logn)的時間,幾乎不需要時間。
而計算2n需要考慮乘法運算的時間,數的位數是O(n)級別的,所以總共需要O(n2logn)的時間。不過實際每次乘法的時候數的位數要比n小很多,所以實際運行時間還是比較快的。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Python计算 1的9999999次方,不到1s就得出答案!是如何处理的?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python数学--假设班里25个同学,
- 下一篇: 如果用中文编程....那么... (如果