一道100年後羊圈羊的數量經典演算法分析

2021-06-17 15:01:58 字數 1160 閱讀 4237

乙隻羊的壽命是五年 他會在二歲和四歲 分別產下乙隻羊 如果乙個牧場第一年引進乙隻羊 請問n年後 這個羊圈 有幾隻羊?(不考慮羊的交配以及疾病等因素)

先說下分析思路:

1)由題意得知:在n年內,所有羊僅在偶數年生育;羊的壽命為五年;

2)將羊圈看成乙個大的容器,羊圈中最終的數量=羊的出生數量-羊的死亡數量。

以下先列出20年之內,每年羊的出生數量、羊的死亡數量:

偶數年 出生數量 死亡數量 增長數量

0         1            0            1

2         1            0            1

4         2            0            2

6         3            1            2

8         5            1            4

10       8            2            6

12       13          3            10

14       21          5            16

16       34          8            26

18       55          13          42

20       89          21          68

觀察20年內羊的增長數量得知,從第6年開始,偶數年增長數量為斐波那契數列:2,4,6,10,16,26,42,68,....

所以,在n年內,羊的總數量=1+1+2+(從第6年至n年內每偶數年的增長數量斐波那契數列總和);

下面方法得出100年之後羊圈羊的數量:40730022148,而且和之前的一些演算法相比,在效率方面也很高。。。所以真正的效能優化,在很大程度上取決於演算法,而演算法優化,更是取決於所選的思路。

/** 

* 獲得n年後羊總數量

* @param year 多少年

* @return

*/ public static long gettotalcountbyyear(int year)

return 1+1+2+totalcount;

}

一年後的目標

其次,是生活中的反省。之前能8點半到公司,每天寫一點今日的收穫,做一下筆記,為什麼現在就沒有動力起床了呢?今天看到馬雲說公司不為員工準備班車,是覺得熱愛工作的員工是不會因為這個而遲到,還是能堅持早起的,之前坐在大神erik旁邊,雖然沒有問過他什麼技術問題,但是有一點對我觸動很深,就是他每天8點多就去...

寫給一年後的我

最近,看著 師兄們找工作也慢慢到了尾聲,大部分都找到了自己心儀的工作。不禁想到,一年後的現在,我是不是也找到了屬於自己的那份工作呢?作為一名電子類的大學的研究生,大學本科四年學到的僅僅是教科書上的東西,也沒有得到其他方面的培訓和學習。研究生一年級,上學期在學院的研究生科當了半年的助管,平時也是在上課...

致一年後的自己

一年後,那應該已經大四了吧,到那時候大學生活也差不多接近尾聲了,整個學習生涯也隨之而去,雖然很捨不得,但未來的路還是要繼續走滴.希望一年後的我,回憶起大學四年的生活應該是醬紫的.大學四年找到了自己的學習方向 大學四年找到了一群志同道合的小夥伴們 大學四年的每一天都過的很充實,很自由 大學四年做出了乙...