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

資訊專欄INFORMATION COLUMN

提升Python效率——用循環機制代替遞歸函數

Reducto / 1012人閱讀

摘要:斐波那契數列當年,典型的遞歸題目,斐波那契數列還記得嗎當然為了程序健壯性,加上兄弟輸入正整數哈兄弟別輸入或負數呀兄弟,超過了最大遞歸深度是的,無論時間還是空間復雜度,遞歸真的是不太好使哈這是遞歸的寫法我稍微解釋三點為啥是,因為,斐波

斐波那契數列

當年,典型的遞歸題目,斐波那契數列還記得嗎?

def fib(n):
    if n==1 or n==2:
        return 1
    else:
        return fib(n-1)+fib(n-2)

當然, 為了程序健壯性,加上try...except...

def fib(n):
    if isinstance(n, int):
        print("兄弟,輸入正整數哈")
        return
    
    try:
        if n==1 or n==2:
            return 1
        elif n <= 0:
            print("兄弟別輸入0或負數呀")
        else:
            return fib(n-1)+fib(n-2)
    except RecursionError:
        print("兄弟,超過了最大遞歸深度"

是的,無論時間還是空間復雜度,遞歸真的是不太好使哈!這是遞歸的寫法:

def fib(n):
    if n==1 or n == 2:
        return 1
    a, b = 1, 1
    for i in range(2, n):
        a, b = b, a+b
    return b

我稍微解釋三點:

為啥是range(2, n),因為,斐波那契數列從1開始,所以fib(n)就是數列的第n
由于前兩項都為1,所以要少兩項,為range(2, n)(要循環n-2次)

a, b = b, a+b這里你也許也有困惑,我簡單說說,一般Python解釋器會將逗號分隔的變量直接看做一個元組,
又因為,解釋器先執行等式右邊的,所以,這樣相當于元組拆包

a, b = b, a+b這句話的精髓在于,在等式右邊將b視為fib(n-2),將a+b視為fib(n-1)

楊輝三角

寫一個函數,求楊輝三角形,第i行,第j列的值
fun(0, 0) = 1
fun(5, 2) = 10


同樣,先寫遞歸寫法(我這里不考慮特殊情況了,時間有限):

def YH_tri(a, b):
    if a == b or b == 0:
        return 1
    else:
        return YH_tri(a-1, b)+YH_tri(a-1, b-1)

老鐵們自己先想想該怎么寫??

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/45235.html

相關文章

  • Python高級語法之:一篇文章了解yield與Generator生成器

    摘要:與子生成器是開始引入的新特性。我們把這種一個生成器中調用的另一個生成器叫做子生成器,而這個子生成器由關鍵字生成。由于子生成器很常用,所以引入了新的語法來簡化這個代碼。下次,會繼續對之前的結果進行乘方,直到結果超過為止。 Python高級語法中,由一個yield關鍵詞生成的generator生成器,是精髓中的精髓。它雖然比裝飾器、魔法方法更難懂,但是它強大到我們難以想象的地步:小到簡單的...

    kamushin233 評論0 收藏0
  • PHP的性能優化方法總結

    摘要:內置函數的性能優劣。產生額外開銷的錯誤抑制符號,最好別用不管是性能優化和項目的健壯性等方面。在方法中遞增局部變量,速度是最快的。類似的方法調用所花費的時間接近于次的局部變量遞增操作。 什么情況之下,會遇到PHP性能問題?1:PHP語法使用不恰當。2:使用PHP語言做了它不擅長的事情。3:使用PHP語言連接的服務不給力。4:PHP自身的短板(PHP自身做不了的事情)。5:我們也不知道的問...

    gekylin 評論0 收藏0
  • Function類型

    摘要:類型類型是的引用類型之一通過類型創建對象在中函數也以對象的形式存在每個函數都是一個對象構造函數函數除了用函數定義語句和字面量表達式兩種方式定義之外還可以通過類型進行定義函數的參數和函數體都是以字符串形式傳遞給的通過類型定義函數的效率遠不如函 Function類型 Function類型是JS的引用類型之一 通過Function類型創建Function對象在JS中 函數也以對象的形式存在...

    jackzou 評論0 收藏0
  • 一次阿里面試后對函數本質的理解

    摘要:函數使用函數的使用主要有兩種閉包閉包的本質是對共享變量的操作,典型運用是觀察者模式備忘錄模式普通封裝,復用。參考阿里博客你可能不知道的事基礎篇總結要寫好一個項目需要兼容,性能,安全等。 一次阿里面試后對函數本質的理解 寫在前面 環境:阿里的在線編程系統允許面試官在線考察面試者的編程能力. 考點:編程和理論. 編程:分為技術自驅力、異步操作、編程風格(顆粒小)、變量作用域、DOM操作...

    liuyix 評論0 收藏0
  • 一次阿里面試后對函數本質的理解

    摘要:函數使用函數的使用主要有兩種閉包閉包的本質是對共享變量的操作,典型運用是觀察者模式備忘錄模式普通封裝,復用。參考阿里博客你可能不知道的事基礎篇總結要寫好一個項目需要兼容,性能,安全等。 一次阿里面試后對函數本質的理解 寫在前面 環境:阿里的在線編程系統允許面試官在線考察面試者的編程能力. 考點:編程和理論. 編程:分為技術自驅力、異步操作、編程風格(顆粒小)、變量作用域、DOM操作...

    superw 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<