Python中跳臺(tái)階、變態(tài)跳臺(tái)階與矩形覆蓋問題的解決方法
前言
跳臺(tái)階、變態(tài)跳臺(tái)階、矩形覆蓋其實(shí)都和斐波那契數(shù)列是一類問題,文中通過示例代碼介紹的非常詳細(xì),下面話不多說了,來一起看看詳細(xì)的介紹吧。
跳臺(tái)階
問題描述:
一只青蛙一次可以跳上1級(jí)臺(tái)階,也可以跳上2級(jí)。求該青蛙跳上一個(gè)n級(jí)的臺(tái)階總共有多少種跳法。
分析:
初始值很容易得到,當(dāng)n > 2時(shí),跳上n級(jí)臺(tái)階最后一步無外乎兩種情況,從第n-1級(jí)跳一級(jí)跳上來,或是從第n-2級(jí)跳2級(jí)跳上來,因此很容易得到如下遞歸公式。
F(0)= 0
F(1)= 1
F(2)= 2
F(n)= F(n-1)+ F(n-2)(n > 2)
代碼:
def jump_floor(number): if number <= 2: return number prev, curr = 1, 2 for _ in range(3, number+1): prev, curr = curr, prev+curr return curr
變態(tài)跳臺(tái)階
問題描述:
一只青蛙一次可以跳上1級(jí)臺(tái)階,也可以跳上2級(jí)……它也可以跳上n級(jí)。求該青蛙跳上一個(gè)n級(jí)的臺(tái)階總共有多少種跳法。
分析:
相比上一個(gè)跳臺(tái)階,這次可以從任意臺(tái)階跳上第n級(jí)臺(tái)階,也可以直接跳上第n級(jí)。因此其遞歸公式為各個(gè)臺(tái)階之和再加上直接跳上去的一種情況。
F(0)= 0
F(1)= 1
F(2)= 2
F(n)= F(n-1)+ F(n-2)+ … + F(2)+ F(1)+ 1 = 2 **(n-1)
代碼:
def jump_floor(number): if number == 0: return 0 return 2**(number-1)
矩形覆蓋
問題描述:
我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請(qǐng)問用n個(gè)2*1的小矩形無重疊地覆蓋一個(gè)2*n的大矩形,總共有多少種方法?
分析:
仔細(xì)分析這個(gè)問題實(shí)際上就是普通的跳臺(tái)階問題。
F(0)= 0
F(1)= 1
F(2)= 2
F(n)= F(n-1)+ F(n-2)(n > 2)
代碼:
def jump_floor(number): if number <= 2: return number prev, curr = 1, 2 for _ in range(3, number+1): prev, curr = curr, prev+curr return curr
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Opencv-Python圖像透視變換cv2.warpPerspective的示例
今天小編就為大家分享一篇關(guān)于Opencv-Python圖像透視變換cv2.warpPerspective的示例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-04-04
python3爬蟲學(xué)習(xí)之?dāng)?shù)據(jù)存儲(chǔ)txt的案例詳解
這篇文章主要介紹了python3爬蟲學(xué)習(xí)之?dāng)?shù)據(jù)存儲(chǔ)txt的案例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Python實(shí)現(xiàn)鏈表反轉(zhuǎn)與合并操作詳解
這篇文章主要為大家詳細(xì)介紹了?Python?中反轉(zhuǎn)鏈表和合并鏈表的應(yīng)用場(chǎng)景及實(shí)現(xiàn)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2025-02-02
詳解Python 重學(xué)requests發(fā)起請(qǐng)求的基本方式
這篇文章主要介紹了詳解Python 重學(xué)requests發(fā)起請(qǐng)求的基本方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
python項(xiàng)目運(yùn)行導(dǎo)致內(nèi)存越來越大的原因詳析
最近在跑python程序時(shí),出現(xiàn)占用的內(nèi)存不斷增加的情況,下面這篇文章主要給大家介紹了關(guān)于python項(xiàng)目運(yùn)行導(dǎo)致內(nèi)存越來越大的原因詳析,本文通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
Python網(wǎng)絡(luò)爬蟲信息提取mooc代碼實(shí)例
這篇文章主要介紹了python網(wǎng)絡(luò)爬蟲與信息提取mooc,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
python中利用Future對(duì)象回調(diào)別的函數(shù)示例代碼
最近在學(xué)習(xí)python,所以這篇文章主要給大家介紹了關(guān)于在python中利用Future對(duì)象回調(diào)別的函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)下吧。2017-09-09

