日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

「算法学习」:求平方根

發(fā)布時(shí)間:2023/12/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 「算法学习」:求平方根 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

給你一個(gè)非負(fù)整數(shù) x ,計(jì)算并返回 x 的 算術(shù)平方根 。由于返回類型是整數(shù),結(jié)果只保留 整數(shù)部分 ,小數(shù)部分將被 舍去 。注意:不允許使用任何內(nèi)置指數(shù)函數(shù)和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

來源:力扣(LeetCode)

輸入:x = 8
輸出:2
解釋:8 的算術(shù)平方根是 2.82842…, 由于返回類型是整數(shù),小數(shù)部分將被舍去。

解這道題目運(yùn)用牛頓迭代法會(huì)快速很多,但是此時(shí)有個(gè)問題,什么是牛頓迭代法?
Good question,我也不會(huì),大寫的尷尬

但是我們只是運(yùn)用到了其中的公式來計(jì)算,所以我這邊就簡單的介紹下他的公式及其在本題中的運(yùn)用

從圖中可以看到函數(shù)f(x)=x2-a=0的曲線圖及其切線,可以看出來根號(hào)a的值就是函數(shù)的正實(shí)根,函數(shù)的切線函數(shù)為f(x)=2x,函數(shù)上任意一點(diǎn)的切線率為2x,故x-f(x)/(2x)x?f(x)/(2x) 就是一個(gè)比 x更接近的近似值。代入 f(x)=x2-af(x)=x2?a 得到 x-(x2-a)/(2x)x?(x*2?a)/(2x),也就是 (x+a/x)/2。
我們得到一個(gè)公式:(x+a/x)/2

/*理解了上面的公式所求后,這道題目就迎刃而解了*/ var numSqrt = function(x) {let r = x//經(jīng)過循環(huán)計(jì)算,我們所求的值會(huì)越來越逼近答案,然后最小數(shù)的整數(shù)位都是相同的,此時(shí)取整即可while (r ** 2 > x) r = ((r + x / r) / 2) | 0//取整return r };

總結(jié)

以上是生活随笔為你收集整理的「算法学习」:求平方根的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。