【证明】【一题多解】【等价转换】—— 排列组合的计算

1. 组合数的等价转换

  • 递推关系(降低规模):

{(nk)=nk(n1k1)(nk)=nnk(n1k)

  • 拆分成两项

    (nk)=(n1k)+(n1k1)

    有如下两种形式的证明:

    • 根据组合数的定义((nk)=n!k!(nk)!),各自展开进行证明;
    • 《算法导论》提供了另外的思路,从实际意义出发,(nk) 表示 n 个对象中选择 k 个。考虑全体 n 个对象中的任意一个(是否被选中),根据其是否在最终选择的 k 个之中,可将 (nk) 拆分成两项,

      • k 中,即从余下的 n1 个对象中选择 k1 个对象:(n1k1)
      • 不在 k 中,即从余下的 n1 个对象中选择 k 个对象:(n1k)

      因此有:(nk)=(n1k)+(n1k1)

原文地址:https://www.cnblogs.com/mtcnn/p/9420932.html