對放蘋果和數字劃分的理解

2021-09-30 14:42:03 字數 848 閱讀 8275

這兩個題是經典題 半年前弄懂了 最近又碰到又發現自己忘了公式了

f(m,n) = f(m,n-1)+f(m-n,n);
m是蘋果個數 n是盤子個數

f(m,n-1)的意思是至少空著乙個盤子 那麼就只要把m個蘋果放進n-1個盤子裡就可以了 當年的我還不理解為什麼至少有乙個盤子為空只要f(m,n-1)就可以了 總覺得要f(m,n-x) x從1到n-1 但是首先我們可以發現把根據上面的遞迴公式 f(m,n-1)裡會出現f(m,n-2)以此類推 其次從字面上理解 就算要計算有兩個盤子為空 是不是也是至少有乙個有乙個盤子為空 所以其實有盤子為空 等價於至少有乙個盤子為空

f(m-n,n) 的意思是乙個盤子也不空 所以每個盤子至少放乙個 這個應該好理解

然後遞迴邊界

m如果蘋果數小於盤子數 那麼多餘的空盤子其實可以扔了 

如果蘋果沒了 說明分完了 情況數+1

如果只有乙個盤子了 也就是只有一種放法了 即剩下的蘋果都放進去

我還想過

m==1 return 1

n==0 return 1

好像也沒錯?但是仔細想想就會發現 當只剩下乙個蘋果的時候真的只有一種情況嗎?顯然 這個蘋果放到不同的盤子裡會有不同的效果 所以是不確定的

當盤子用完了 那麼就是一種新情況嗎? 我們確定的只有盤子用完了 那麼如果蘋果沒有用完 又要把它放到**去呢 所以也是不對的

至於數字劃分 不同題目有不同要求 比如有些題目問劃分成n個數字的情況 那麼就是放蘋果問題的另一種叫法 有些題目問所有情況的數目 那麼就是n從1到m f(m,n)的和

突然想起自己收藏夾裡有乙個別人做的總結。。。

劃分數系列問題

DSP程式空間和數字空間的理解

一直不太明白28335那張記憶體對映圖,data space和prog space併排畫在一起中間來條線隔開是什麼意思 notes memory blocks on f28335 are uniform ie same physical memory in both page 0 and page ...

關於https和數字證書的一些理解

數字證書申請過程 作業系統中本就存在機構的證書,其中有機構的公鑰,現在我生成乙個公鑰,把自己的公鑰和個人資訊用機構公鑰加密然後發給機構,然後機構用自己的私鑰解密,然後機構把我的資料用hash演算法生成乙個字串,摘取其中的部分資訊再用機構私鑰加密就成了數字簽名,把數字簽名,個人資訊,公鑰,頒發機構資訊...

對加密解密及數字簽名的理解

對加密解密及數字簽名的理解 資料加密有兩種型別,一種是對稱加密,另一種是不對稱加密 對稱加密的傳送方和接受方都使用同乙個金鑰對資料進行加密解密,因此,在傳送加密資料的時候同時也要傳送金鑰,接收方接到金鑰後才能對資料進行解密,這就有乙個問題,那就是,如果別人攔截到了金鑰,相當於鑰匙被別人偷走了,那這個...