有幾種方法只使用整數算術來查找整數平方根。例如this one。它使有趣的閱讀和一個非常有趣的理論,特別是對於我這一代,這種技術不再那麼有用。使用整數算術計算第N個根
最主要的是它不能使用浮點運算,因此排除了牛頓方法和它的派生。我知道找到根的唯一方法是二項式擴展,但這也需要浮點算術。
有什麼技術/算法用於僅使用整數算術來計算整數n階根?
編輯:感謝所有迄今爲止的答案。他們似乎都稍微有點聰明的試驗和改進。有沒有更好的辦法?
編輯2:好的,所以似乎沒有智能的方法來做到這一點沒有試驗/改進和牛頓法或二分法搜索。任何人都可以在理論上提供兩個的比較?我在兩者之間運行了許多基準,並發現它們非常相似。
什麼是您所需的輸入值範圍? – 2012-01-11 21:27:22
@PaulR,理想情況下它可以是可擴展的,但我認爲你現在可以假設基數和數字都是32位(無符號)整數。 – Matt 2012-01-11 21:32:19
你允許哪種整數操作?平方根是一種特殊情況,因爲可以使用加法,減法和移位來提取它們。 – Neil 2012-01-11 21:39:59