看知乎,偶然看到的一個數(shù)學(xué)題申尼,排名前幾位的答案已經(jīng)給出了各種很好的口算垮卓、筆算方法。這類問題主要還是在于算法思路师幕,如果這個數(shù)字更大粟按,一些“暴力破解”的方法估計就不好使了。
這里針對這個問題霹粥,使用Python解決灭将。
原問題鏈接:https://www.zhihu.com/question/328025939/answer/716242534
1.通過比較關(guān)系運(yùn)算符返回的布爾值來判斷
>>> 5**4321 > 4**5321
False
- 通過相除得到的商是否大于1來判斷,和方法1本質(zhì)一樣
>>> 5**4321 / 4**5321
4.87724855272298e-184
- 一種取巧的方法蒙挑,判斷二者的位數(shù)宗侦,顯然位數(shù)多的正整數(shù)大
>>> len(str(5**4321))-len(str(4**5321))
-183
- 通過取對數(shù)消除指數(shù)帶來的高運(yùn)算量
>>> import math
math.log(5)*4321>math.log(4)*5321
False