国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

LeetCode69. Sqrt(x) -- 求一個(gè)數(shù)的開方

ddongjian0000 / 1554人閱讀

摘要:牛頓迭代法的原理很簡單,其實(shí)是根據(jù)在附近的值和斜率,估計(jì)和軸的交點(diǎn),因此牛頓迭代法的公式為其實(shí)就是求切線與軸的交點(diǎn)。代碼利用牛頓法進(jìn)行的更新,比直接從開始遍歷所作的循環(huán)要少牛頓迭代法的基本原理,請(qǐng)參考牛頓迭代法求開平方

描述

Implement int sqrt(int x).

Compute and return the square root of x, where x is guaranteed to be a non-negative integer.

Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned.

Example

Input: 8
Output: 2
Explanation: The square root of 8 is 2.82842..., and since 
             the decimal part is truncated, 2 is returned.
分析

該題就是求一個(gè)數(shù)的開平方,此處忽略這種直接用int(x ** 0.5)的做法;

最簡單的求解方式是從1進(jìn)行遍歷,直到找到一個(gè)數(shù)n,滿足$n^2>x$,則此時(shí)$n-1$就是要找的值,但是該方法需要遍歷$int(sqrt x)$次,當(dāng)$x$的數(shù)值很大時(shí),需要遍歷的次數(shù)太多;

所以這里采用牛頓迭代法來進(jìn)行開方,牛頓迭代法能開任意數(shù)的平方,并能找到一個(gè)逼近解,當(dāng)然該題只需要找到對(duì)應(yīng)的整數(shù)解就可以。牛頓迭代法的原理很簡單,其實(shí)是根據(jù)$f(x)=x^2 - a$在$x_0$附近的值和斜率,估計(jì)$f(x)$和$x$軸的交點(diǎn),因此牛頓迭代法的公式為:

$$x_{n+1}=x_n - frac{f(x_n)}{f^{"}(x_n)}$$

其實(shí)就是求切線與x軸的交點(diǎn)。

代碼
class Solution:
    def mySqrt(self, x):
        """
        利用牛頓法進(jìn)行x0的更新,比直接從1開始遍歷所作的循環(huán)要少
        :type x: int
        :rtype: int
        """
        x0 = 1
        while True:
            x1 = x0 - (x0 ** 2 - x)/(2*x0)
            if int(x1) == int(x0):
                break
            else:
                x0 = x1
        return int(x0)

牛頓迭代法的基本原理,請(qǐng)參考:
牛頓迭代法求開平方

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/41904.html

相關(guān)文章

  • [Leetcode] Sqrt 開方

    摘要:二分搜索復(fù)雜度時(shí)間因?yàn)檎麛?shù)長度有限空間思路我們知道必定存在這么兩個(gè)整數(shù)和,所以我們要做的其實(shí)就是縮小這個(gè)的范圍。代碼牛頓迭代法復(fù)雜度時(shí)間空間思路更好的解法是用數(shù)學(xué)方法,牛頓法是非常經(jīng)典的求解方程的方法。 Sqrt Implement int sqrt(int x). Compute and return the square root of x. 二分搜索 復(fù)雜度 時(shí)間 O(1) ...

    BlackFlagBin 評(píng)論0 收藏0
  • leetcode-69. Sqrt(x)

    摘要:題目思路牛頓迭代法,導(dǎo)數(shù)方程,任何函數(shù),求解某個(gè)均可以轉(zhuǎn)化為此后就可以用牛頓迭代法,不斷逼近實(shí)際待求值。牛頓迭代共識(shí)應(yīng)用迭代思想,類似于動(dòng)態(tài)規(guī)劃思想,,進(jìn)行動(dòng)態(tài)推斷處理 題目: Implement int sqrt(int x). Compute and return the square root of x, where x is guaranteed to be a non-neg...

    Yuqi 評(píng)論0 收藏0
  • [LeetCode] 69. Sqrt(x)

    Problem Implement int sqrt(int x). Compute and return the square root of x, where x is guaranteed to be a non-negative integer. Since the return type is an integer, the decimal digits are truncated an...

    SQC 評(píng)論0 收藏0
  • LeetCode 之 JavaScript 解答第69題 —— X 平方根(Squrt(x))

    摘要:測試用例輸入輸入輸入負(fù)數(shù)的輸入平方根為正整數(shù)的輸入平方根為小數(shù)的代碼實(shí)現(xiàn)寫二分查找代碼需要注意的三點(diǎn)循環(huán)退出條件。使用二分查找之前,判斷問題是否滿足二分查找的要求。 Time:2019/4/17Title: sqrt(x)Difficulty: EasyAuthor: 小鹿 題目:sqrt(x) Implement int sqrt(int x). Compute and retu...

    sf_wangchong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<