程式11 兔子出生

2021-08-01 08:44:34 字數 846 閱讀 7100

古典問題:

有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?

解題思路分析:

假設第x個月有y(x)個兔子出生,那麼當x=1時,y(1)=0,當x=2時,y(2)=0,每個月的兔子總數設為n(x)=1+y(1)+y(2)+y(3)+……+y(x) =1+0+0+1+……+n(x-2)=1+n(1)+……+n(x-2)

當x>=3時,第x個月出生的兔子等於第x-2個月的兔子總數,因為可以保證所有兔子都是發育成熟的。(第x-1個月的兔子相比第x-2個月增加的兔子,到第x個月還不能生小兔子)。所以,y(x)=n(x-2),例如y(3)=n(1)=1

n(1)=1,n(2)=1

第x個月的兔子總數等於第x-1個月的兔子總數,加上第x個月新出生的兔子y(x):

n(x)=n(x-1)+y(x)=n(x-1)+n(x-2)

**:

def rabbit_born(x):

n=if x==1:

return n

if x==2:

n.extend([1,1])

return n

n.extend([1,1])

for i in range(2,x):

return n

執行:

>>> n=rabbit_born(22)

>>> n

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711]

11兔子生小孩問題練習

有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?程式分析 對問題分析過後會發現,這是乙個典型的關於 斐波那契函式 的例子,知道這一點就很容易解決這個問題。斐波那契函式 乙個數列,前兩項是1,從第3個數字開始,每一項都...

廣州出生嬰兒登記入戶程式

注意 廣州市公安局戶政管理部門實施戶政業務 一網辦 廣州市民只要到市內任何乙個區的公安分局 中心或可辦理戶政業務的派出所,即可辦理相關戶政業務。這意味著,穗居民辦理戶政業務不再限於戶籍地公安分局 中心 或可辦理戶政業務的派出所 出生嬰兒登記入戶 單位名稱 市公安局及分局 凡符合下列條件的人員所生的嬰...

PHP 演算法之斐波那契數列演算法 計算出生兔子的數量

題目 古典問題 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?分析 一對兔子也就是兩隻,有類似的要計算兔子的對數,邏輯一樣,第三個月都生一對兔子,那麼我們按第三個月開始增量而不是第三個月後開始增量。月數1個月 2個...