m個相同蘋果放的n個相同盤子中的演算法

2021-06-18 10:08:11 字數 826 閱讀 4281

m個相同的蘋果,放在n個相同的盤子中,由於相同,使用排列組合的方法不好處理。這個問題困擾了我很久

最後由大神「或缺」給出了答案:

以8個蘋果放在3個盤子中為例

思路:8蘋果3盤子

=8蘋果2盤子+5蘋果2盤子(每盤已經放入1個)+2蘋果2盤子(每盤已經放入3個)

=(8蘋果1盤子+6蘋果1盤子(每盤已經放入1個))+ (3蘋果1盤子(每盤已經放入1個)

+1蘋果1盤子)(每盤已經放入1個)

+(1蘋果1盤子(每盤已經放入1個)+1蘋果1盤子)(每盤已經放入3個)

=5+3+2

=10程式設計實現:

#include #include using namespace std;

int func(int m, int n)

return t;

}int main()

cout << "共" << func(m, n, "--") << "種放法" << endl;

cout << "------------" << endl;

}return 0;

}

計算結果:

在此,深深的表示對大神「或缺」的謝意!

放蘋果 n個相同的蘋果放入m個相同的盤子裡

題目鏈結 description 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。input 第一行是測試資料的數目t 0 t 20 以下每行均包含二個整數m和n,以空格分開。1 m,n 10。output 對輸入的...

M個蘋果放到N個相同盤子和N個不同盤子的解法

題目很簡單 就是把m個蘋果放到n個盤子中,盤子可以為空,問你有多少種放法。首先應該明白,盤子相同時三個盤子放1 1 5 和 5 1 1 是相同的,盤子不一樣時是不同的放法。1 放入相同盤子 蘋果為m,盤子為n 放蘋果時分為兩種可能 一種是蘋果數大於等於盤子數,第二種是蘋果數小於盤子數。f m,n 是...

m個蘋果放入n個盤子

放蘋果問題 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?注 5,1,1和1,1,5是同一種分法 解題分析 設f m,n 為m個蘋果,n個盤子的放法數目,則先對n作討論,當n m 必定有n m個盤子永遠空著,去掉它們對擺放蘋果方法數目不產生影響。即if n m ...