「算法学习」:求平方根
生活随笔
收集整理的這篇文章主要介紹了
「算法学习」:求平方根
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你一個非負整數 x ,計算并返回 x 的 算術平方根 。由于返回類型是整數,結果只保留 整數部分 ,小數部分將被 舍去 。注意:不允許使用任何內置指數函數和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。
來源:力扣(LeetCode)
輸入:x = 8
輸出:2
解釋:8 的算術平方根是 2.82842…, 由于返回類型是整數,小數部分將被舍去。
解這道題目運用牛頓迭代法會快速很多,但是此時有個問題,什么是牛頓迭代法?
Good question,我也不會,大寫的尷尬
但是我們只是運用到了其中的公式來計算,所以我這邊就簡單的介紹下他的公式及其在本題中的運用
從圖中可以看到函數f(x)=x2-a=0的曲線圖及其切線,可以看出來根號a的值就是函數的正實根,函數的切線函數為f(x)=2x,函數上任意一點的切線率為2x,故x-f(x)/(2x)x?f(x)/(2x) 就是一個比 x更接近的近似值。代入 f(x)=x2-af(x)=x2?a 得到 x-(x2-a)/(2x)x?(x*2?a)/(2x),也就是 (x+a/x)/2。
我們得到一個公式:(x+a/x)/2
總結
以上是生活随笔為你收集整理的「算法学习」:求平方根的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端发包流程笔记
- 下一篇: Bluetooth基础知识--蓝牙的几种