從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);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章