欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python函數(shù)遞歸是什么

python函數(shù)遞歸是什么?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)是一家專業(yè)提供西安企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、網(wǎng)站制作、HTML5建站、小程序制作等業(yè)務(wù)。10年已為西安眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

在一個函數(shù)體內(nèi)調(diào)用它自身,被稱為函數(shù)遞歸。函數(shù)遞歸包含了一種隱式的循環(huán),它會重復(fù)執(zhí)行某段代碼,但這種重復(fù)執(zhí)行無須循環(huán)控制。

例如有如下數(shù)學(xué)題。己知有一個數(shù)列:f(0) = 1,f(1) = 4,f(n + 2) = 2*f(n+ 1) +f(n),其中 n 是大于 0 的整數(shù),求 f(10) 的值。這道題可以使用遞歸來求得。下面程序?qū)⒍x一個 fn() 函數(shù),用于計算 f(10) 的值。

def fn(n) :
    if n == 0 :
        return 1
    elif n == 1 :
        return 4
    else :
        # 函數(shù)中調(diào)用它自身,就是函數(shù)遞歸
        return 2 * fn(n - 1) + fn(n - 2)
# 輸出fn(10)的結(jié)果
print("fn(10)的結(jié)果是:", fn(10))

在上面的 fn() 函數(shù)體中再次調(diào)用了 fn() 函數(shù),這就是函數(shù)遞歸。注意在 fn() 函數(shù)體中調(diào)用 fn 的形式:

return 2 * fn(n - 1) + fn(n - 2)

對于 fn(10),即等于 2*fn(9)+fn(8),其中 fn(9) 又等于 2*fn(8)+fn(7)……依此類推,最終會計算到 fn(2) 等于 2*fn(1)+fn(0),即 fn(2) 是可計算的,這樣遞歸帶來的隱式循環(huán)就有結(jié)束的時候,然后一路反算回去,最后就可以得到 fn(10) 的值。

仔細(xì)看上面遞歸的過程,當(dāng)一個函數(shù)不斷地調(diào)用它自身時,必須在某個時刻函數(shù)的返回值是確定的,即不再調(diào)用它自身:否則,這種遞歸就變成了無窮遞歸,類似于死循環(huán)。因此,在定義遞歸函數(shù)時有一條最重要的規(guī)定: 遞歸一定要向已知方向進(jìn)行。

例如,如果把上面數(shù)學(xué)題改為如此。己知有一個數(shù)列:f(20)=1,f(21)=4,f(n + 2)=2*f(n+1)+f(n),其中 n 是大于 0 的整數(shù),求 f(10) 的值。那么 f(10) 的函數(shù)體應(yīng)該改為如下形式:

def fn(n) :
    if n == 20 :
        return 1
    elif n == 21 :
        return 4
    else :
        # 函數(shù)中調(diào)用它自身,就是函數(shù)遞歸
        return fn(n + 2) - 2*fn(n + 1)

從上面的 fn() 函數(shù)來看,當(dāng)程序要計算 fn(10) 的值時,fn(10) 等于 fn(12)-2*fn(11),而 fn(11) 等于 fn(13)-2*fn(12)……依此類推,直到 fn(19) 等于 fn(21)-2*fn(20),此時就可以得到 fn(19) 的值,然后依次反算到 fn(10) 的值。這就是遞歸的重要規(guī)則:對于求 fn(10) 而言,如果 fn(0) 和 fn(1) 是已知的,則應(yīng)該采用 fn(n)=2*fn(n-1)+fn(n-2) 的形式遞歸,因為小的一端已知;如果 fn(20) 和 fn(21) 是已知的,則應(yīng)該采用 fn(n)=fn(n+2)-2*fn(n+1) 的形式遞歸,因為大的一端已知。

遞歸是非常有用的,例如程序希望遍歷某個路徑下的所有文件,但這個路徑下的文件夾的深度是未知的,那么就可以使用遞歸來實現(xiàn)這個需求。系統(tǒng)可定義一個函數(shù),該函數(shù)接收一個文件路徑作為參數(shù),該函數(shù)可遍歷出當(dāng)前路徑下的所有文件和文件路徑,即在該函數(shù)的函數(shù)體中再次調(diào)用函數(shù)自身來處理該路徑下的所有文件路徑。

總之,只要在一個函數(shù)的函數(shù)體中調(diào)用了函數(shù)自身,就是函數(shù)遞歸。遞歸一定要向已知方向進(jìn)行。

關(guān)于python函數(shù)遞歸是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。

本文題目:python函數(shù)遞歸是什么
文章源于:http://chinadenli.net/article24/iegdje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站營銷、網(wǎng)站收錄、自適應(yīng)網(wǎng)站、軟件開發(fā)、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司
欧美在线视频一区观看| 国产丝袜极品黑色高跟鞋| 91亚洲精品国产一区| 国产精品二区三区免费播放心| 蜜桃传媒在线正在播放| 久久少妇诱惑免费视频| 日韩一级欧美一级久久| 人妻人妻人人妻人人澡| 国产91色综合久久高清| 精品香蕉一区二区在线| 午夜国产成人福利视频| 日本欧美在线一区二区三区| 亚洲欧美国产精品一区二区| 97精品人妻一区二区三区麻豆| 国产一级不卡视频在线观看| 欧美日韩一级aa大片| 久久精品国产第一区二区三区| 中文字幕亚洲人妻在线视频| 中文字幕一区二区三区中文| 99久久精品免费精品国产| 中文字幕中文字幕一区二区| 久久大香蕉一区二区三区| 99免费人成看国产片| 好骚国产99在线中文| 中文字幕一区久久综合| 又黄又色又爽又免费的视频| 亚洲精品小视频在线观看| 久热香蕉精品视频在线播放| 欧美多人疯狂性战派对| 亚洲综合色在线视频香蕉视频 | 大香蕉大香蕉手机在线视频| 国产一级不卡视频在线观看| 国产又粗又猛又长又黄视频| 人妻少妇系列中文字幕| 欧美日韩中国性生活视频| 日本男人女人干逼视频| 亚洲国产一区精品一区二区三区色| 亚洲夫妻性生活免费视频| 国产精品美女午夜视频| 久久久精品日韩欧美丰满| 丰满人妻一二三区av|