国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python中跳臺(tái)階、變態(tài)跳臺(tái)階與矩形覆蓋問(wèn)題的解決方法

2020-02-23 00:09:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

跳臺(tái)階、變態(tài)跳臺(tái)階、矩形覆蓋其實(shí)都和斐波那契數(shù)列是一類問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。

跳臺(tái)階

問(wèn)題描述:

一只青蛙一次可以跳上1級(jí)臺(tái)階,也可以跳上2級(jí)。求該青蛙跳上一個(gè)n級(jí)的臺(tái)階總共有多少種跳法。

分析:

初始值很容易得到,當(dāng)n > 2時(shí),跳上n級(jí)臺(tái)階最后一步無(wú)外乎兩種情況,從第n-1級(jí)跳一級(jí)跳上來(lái),或是從第n-2級(jí)跳2級(jí)跳上來(lá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

變態(tài)跳臺(tái)階

問(wèn)題描述:

一只青蛙一次可以跳上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)

矩形覆蓋

問(wèn)題描述:

我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請(qǐng)問(wèn)用n個(gè)2*1的小矩形無(wú)重疊地覆蓋一個(gè)2*n的大矩形,總共有多少種方法?

分析:

仔細(xì)分析這個(gè)問(wèn)題實(shí)際上就是普通的跳臺(tái)階問(wèn)題。

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à)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)武林站長(zhǎng)站的支持。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沈丘县| 正阳县| 宜春市| 桂平市| 保亭| 石泉县| 桑日县| 资溪县| 太保市| 青河县| 阿拉善右旗| 怀化市| 枞阳县| 永宁县| 星座| 汾阳市| 页游| 昆山市| 镇原县| 唐河县| 永仁县| 洛隆县| 兴和县| 合川市| 通州区| 德昌县| 府谷县| 栾城县| 芮城县| 兰考县| 宣汉县| 疏勒县| 嘉义市| 巴彦县| 嘉荫县| 玛多县| 安新县| 祁东县| 淳化县| 北票市| 三门县|