组合的递推公式 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件,这样问题可以划分为一下两部分:(可以有其他的划分?)
- 多取出的那件就是新投入的那件。即在N+1件中取K+1件,而其中的1件已经提前确定好(同时消耗了1个总件数和1次取的机会),问题转化为在N件中取K件,即 C(N, K) 。
- 多取出的那件不是新投入的那件。即在N+1件中取K+1件,而其中的1件是不能取的,实际只有N种选择(消耗了1个总件数,但不消耗取的机会),问题转化为在N件中取K+1件,即 C(N, K+1) 。
在做这样的划分的时候要保证划分是“完全”的。
(有点像全概率公式的划分?左边为相同的目的(在N+1件中取K+1件),右边是划分亦即限制条件)
原文地址:https://www.cnblogs.com/CCCat/p/8372388.html
时间: 2024-11-02 01:37:26