一道關於老鼠繁衍的演算法題

2021-09-29 14:08:20 字數 1418 閱讀 1728

大海**的一座孤島,上面本來沒有老鼠。有一艘路過的船隻在附近沉沒了,船上 x 對 新出生的老鼠,順著船隻殘骸漂流到小島上。

1. 每兩個月一次生產,每次出生 2對 老鼠

2. 老鼠的壽命是 5個月,也就是說一輩子可以生產 2次

3. 這個島上,每個月因為神秘原因,假如存在 3個月大的老鼠,會死去一對

問 n個月後,島上有多少只老鼠 (假設存活率 100% )

1 2

30個月時

其實就是新生老鼠來到島上的時候,只存在x只新生的老鼠

1個月時

2個月時

3個月時

4個月時

5個月時

得出狀態轉移方程

// f0(n) n個月時,0個月的老鼠有幾隻

// 從上面其實可以看出,再強調一次,第n個月老鼠數目,只與n-1個月時的不同月份的老鼠有關(後面**優化的時候會用到的)

乙個二維陣列記錄n+1行,6列,行數表示當前時間,列數表述當前n個月,不同年齡的老鼠array[n+1][6]

0個月時,[x,0,0,0,0,0]

1個月時,根據array[0]進行計算

2個月時,根據array[1]進行計算

3個月時,根據array[2]進行計算

.....

0個月時,[x,0,0,0,0,0]

1個月時,根據array[0]進行計算(跟前面一樣)

2個月時,根據array[1]進行計算,記錄在array[0]

(因為,原先的array[0]已經成長為array[1]了,array[0]已經是廢棄資料了,因此原先的array[2]資料可以記錄在array[0],上乙個月資料就是array[1])

3個月時,根據array[0]進行計算,記錄在array[1]

.....

實際寫**的時候,只要當前月份除2取餘數,得出記錄月份以及上一月的計算基礎

不清楚上面是否有遺漏的case,歡迎交流,提供不一樣的解題思路~

一道關於排序的演算法題

題目 給定乙個無序陣列a,一直這個陣列a中的任意乙個元素所在的位置離其最終排序後的位置相差的距離不會超過k。即排序前a i 在位置i,那麼在排序後該元素的位置會在 i k,i k 這個範圍內。現在要求給出乙個演算法使得演算法盡量高校。解析 這裡就不多說了,直接給自己的解法吧。利用乙個大小為k 1的最...

一道演算法題

兩個燒杯,乙個放糖乙個放鹽,用勺子舀一勺糖到鹽,攪拌均勻,然後舀一勺混合 物會放糖的燒杯,問你兩個燒杯哪個雜質多?一樣多吧 對的 為啥?是不是因為 糖和鹽本來就是均勻的 因為,就算不攪拌均,你放一勺過去,那邊放一勺不含雜質的過來,那麼都是一勺雜之 如果攪拌均勻的話也是一樣 小依 21 45 32 也...

一道演算法題

1.上午主要做了對翻譯任務的劃分,下午把 翻譯完畢。2.明天要講的演算法題 對乙個集合,求出其連續元素組成的子集中,和最大的子集 我對這道題的理解是 1 若集合中最小值大於0,意味著所有的都大於0,則最大的子集和,為所有值加起來 2 若集合中最大值小於0,意味著所有的都小於0,則最大的子集和,為集合...