关于组合 C(N, K) = C(N - 1, K) + C(N - 1, K - 1) 的理解

Posted cccat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于组合 C(N, K) = C(N - 1, K) + C(N - 1, K - 1) 的理解相关的知识,希望对你有一定的参考价值。

组合的递推公式 C(N, K) = C(N - 1, K) + C(N - 1, K - 1) 等价于 C(N + 1, K + 1) = C(N, K + 1) + C(N, K) ,即K和N分别加1。

通过观察 C(N + 1, K + 1) = C(N, K + 1) + C(N, K)

右边第二项C(N, K)为“在N件中取K件的组合数”,左边一项C(N + 1, K + 1)为“在N+1件中取K+1件的组合数”,这两项的差C(N, K + 1)为“在N件中取K+1件的组合数”。

思路是把问题“从N件中取K件”变为“从N+1件中取K+1件”时发生的变化,当从前者变为后者,即向前者总件数N中多投入1件,并且多取出1件,这样问题可以划分为一下两部分:(可以有其他的划分?)

  1. 多取出的那件就是新投入的那件。即在N+1件中取K+1件,而其中的1件已经提前确定好(同时消耗了1个总件数和1次取的机会),问题转化为在N件中取K件,即 C(N, K) 。
  2. 多取出的那件不是新投入的那件。即在N+1件中取K+1件,而其中的1件是不能取的,实际只有N种选择(消耗了1个总件数,但不消耗取的机会),问题转化为在N件中取K+1件,即 C(N, K+1) 。

在做这样的划分的时候要保证划分是“完全”的。

(有点像全概率公式的划分?左边为相同的目的(在N+1件中取K+1件),右边是划分亦即限制条件)

技术分享图片

以上是关于关于组合 C(N, K) = C(N - 1, K) + C(N - 1, K - 1) 的理解的主要内容,如果未能解决你的问题,请参考以下文章

排列组合

关于组合数

模意义下的组合数

c_cpp 给定两个整数n和k,返回1 ... n中k个数的所有可能组合。例如,如果n = 4且k = 2,则解决方案是:

排列组合

排列组合