解释C++排列组合的运算

else 后怎么运算的? 用5 ,2 举例解释
2024-10-31 19:05:04
推荐回答(2个)
回答(1):

递归函数理解的重点在else分支中,comm(n,k)函数表示从1,2,...n个数中任取k个数的所有组合。我们可以一个一个数取,这里面对于每个数来说有2个可能的选择:
(1)当这个数字被选中的时候,那么后面的数字是从余下的n-1个数中取k-1数的组合。这里用下面表示

comm(n - 1, k - 1)

(2)当这个数字没有被选中的时候,那么后面的数字是从余下的n-1个数中取k数的组合。这里用下面表示

comm(n - 1, k)

 

因此,总的可能是就是将这两种可能相加,为

comm(n - 1, k) + comm(n - 1, k - 1)

回答(2):