m個同樣的蘋果放n個同樣的盤子,允許有盤子空著, 問有多少種放法?
令f(m,n)表示m個蘋果放到n個盤子裡有多少種放法,下面分類討論:
mm>n時,按是否有空盤子 分2種情況:
a.假設至少乙個盤子空著,相當於f(m,n)=f(m,n-1)
b.所有的盤子都有蘋果,假設每個盤子可以先放乙個,問題就變成:m-n個蘋果放到n個盤子,即f(m,n)=f(m-n,n)
總的放法為二者之和, f(m,n)=f(m,n-1)+f(m-n,n)
3. 臨界條件
n=1時,所有蘋果都放在同乙個盤子裡 f(m,n)=1
m=0時,沒有蘋果 f(m,n)=1
用遞迴實現分治
public int fun(int m,int n)
m個蘋果放在n個盤子中有多少種結果
m個蘋果放在n個盤子中有多少種結果,前置條件 根據題意,也就是有3種情況,的確完全重複的擺放方式是沒多大意義的 這題可以用列舉的描述方式進行尾遞迴求解 情況二 情況三 情況四 btw,存在乙個以上的空盤擺放方式與圖上的重複擺放方式是等價的,尾遞迴甚至效率並不比迴圈低,說了這麼多,研究此類問的方法還是...
演算法分析 N個蘋果放在N個盤子裡的問題
題的描述 現在有n個一模一樣的蘋果,要放在編號為1 2 3 n的盤子裡 假設盤子足夠大,能放下所有的蘋果 問一共有多少種放法?演算法分析 用符號f i,j 表示i個蘋果放在j個盤子裡的放法數 如果1號盤子裡沒有蘋果,則i個蘋果要放在剩餘的j 1個盤子裡 如果1號盤裡有1個蘋果,則剩餘的i 1個蘋果放...
m個蘋果放入n個盤子
放蘋果問題 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?注 5,1,1和1,1,5是同一種分法 解題分析 設f m,n 為m個蘋果,n個盤子的放法數目,則先對n作討論,當n m 必定有n m個盤子永遠空著,去掉它們對擺放蘋果方法數目不產生影響。即if n m ...