1. 程式人生 > >從n個人中選擇k個人的選法

從n個人中選擇k個人的選法

題目

從n個人中選選k個人組成一個委員會的不同組合數。

解答

分析

從n-1個人到n個人,增加一個人,這個人可能被選中,也可能不被選中。若第n個人被選中則是從n-1個人中選擇k-1個人,若第n個人沒被選中,則是從n-1個人中選擇k個人。即得以下公式:
由n個人裡選k個人的組合數= 由n-1個人裡選k個人的組合數+由n-1個人裡選k-1個人的組合數;

遞迴法得出推導公式:
F(n,0) = 1;
F(n,k=n)=1;
F(n,k) = F(n-1,k)+F(n-1,k-1)

程式碼

C++語言程式碼實現

int getKfromN(int n ,int k){
    if
(n<k){ return 0; }else if(n==k || k==0){ return 1; }else{ return getKfromN(n-1,k-1)+getKfromN(n-1,k); } }