記一次大數整除

除法其實也是減法(應該可以這樣說),那麼大數除法中,該如何判斷一個大數能否被其它數整除呢?(這裏說的數指自然數)

比如 a(=100000000000000000000000),就不能被 b(=333)整除,(但是計算機硬件不支持這次計算或者計算結果有誤),爲了方便理解,這裏定義一個函數 h(a, b) ,如果h(a, b) == 0的話,則說明a可以被b整除。

大數整除的一種思路:跳過無意義的減法運算過程(意思就是比如100/3,100減去10*3後得餘數70,如果餘數x(70)可以被y(3)整除,則100就能被3整除即h(100, 3) == h(100-10*3, 3),然後反反覆覆,直到x-y == 0 或者 x < y),大數整除的前提是 a(被除數) >= b(除數),那麼其實算法設計就已經很清楚了——“大數化小,小數化了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章