矩形覆蓋問題 變相斐波納契數列

2022-04-10 18:36:33 字數 478 閱讀 1656

我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋乙個2*n的大矩形,總共有多少種方法?

觀察題目中的矩形,2*n的,是個長條形。本來腦中想象的是複雜的華容道,但是既然只是簡單的長條形,那麼依然逆向分析。既然是長條形的,那麼從後向前,最後乙個矩形2*2的,只有兩種情況:

1、第一種是最後是由乙個2*(n-1)的矩形加上乙個豎著的2*1的矩形  

2、另一種是由乙個2*(n-2)的矩形,加上兩個橫著的2*1的矩形,因此我們可以得出,第2*n個矩形的覆蓋方法等於第2*(n-1)加上第2*(n-2)的方法。

```python

f = lambda n: 1 if n < 2 else f(n - 1) + f(n - 2)

```

斐波納契數列

f 1 0 f 2 1 f n f n 1 f n 2 斐波納契數列決定審美和諧性 800年前,義大利的數學家李奧納多 斐波那契出版了驚世之作 算盤書 在 算盤書 裡,斐波納契提出了著名的 兔子生兔子的問題 有乙個人把一對兔 子放在四面圍著的地方。假定每個月一對兔子生下另外一對。而這新的一對在二個月...

斐波納契數列

斐波納契數列又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 此本章通過多種方式實現斐波納契數列 第一種 for 迴圈實現 a,b 0,1 for i in ...

兔子問題,斐波納契數列

題目 古典問題 斐波納契數列 有一對兔子,從出生後3個月起每個月都生一對兔子,小兔子長到第三個月又會生一對兔子,假如兔子都不死,問每個月兔子總數?分析規律 1 1 2 3 5 8 13 21 從第二個月以後每個月兔子總數是前兩個月兔子總數之和 1.遞迴演算法 效率灰常低 package com.ma...