zoukankan      html  css  js  c++  java
  • 组合数和一些常用柿子

    被教练分到了讲组合数,所以干脆写篇博客总结一下之前在《具体数学》中看到的公式


    组合数,又称二项式系数,最早是由一类问题定义的:

    n 个两两不相同的东西,任意选出 m 个,有多少种不同的方案?

    这个问题的答案被称作组合数,记做 (C_n^m)(inom nm),满足下列定义式:

    [forall n,min mathbb{N},mleq n,C_n^m=inom nm=frac{n!}{m!(n-m)!} ]

    其中 n 被称为上指标,m 被称为下指标(n!) 为阶乘,满足 (0!=1,forall nin mathbb{N+},n!=ncdot (n-1)!=n(n-1)(n-2)cdots1)

    后来又有了牛顿二项式展开:

    [(a+b)^n=sum_{k=0}^ninom nka^kb^{n-k} ]

    从而可以写出对于给定的 (n)(inom nk) 的生成函数:

    [G_n(x)=(1+x)^n=sum_k inom nk x^k ]

    而如果定义下降幂:

    [forall nin mathbb{R},min mathbb{N+},n^{0downarrow}=1,n^{mdownarrow}=ncdot (n-1)^{(m-1)downarrow}=n(n-1)(n-2)cdots(n-m+1) ]

    我们可以扩展组合数的定义使 n 可以为实数:

    [forall nin mathbb{R},kin mathbb{N},inom nk = frac{n^{kdownarrow}}{k!} ]

    同时定义:

    [inom nk=0,forall kinmathbb{Z-} ]

    注意到,根据上面的定义,我们有很反直觉的结论:

    [inom 00 = 1 ]

    还有一个奇妙定义就是:

    [0^0=1 ]

    它使得二项式定理成立的条件更加宽泛。

    那么通过上述定义,我们可以得到一些组合数的美妙性质:

    • 加法公式(Addition Formula):

    [inom nk=inom{n-1}k+inom{n-1}{k-1},forall ninmathbb{R},kinmathbb{Z} ]

    • 对称公式(Symmetry Identity):

    [inom nk=inom{n}{n-k},forall n,kinmathbb{N},kleq n ]

    • 上指标反转(Negating the Upper Index):

    [inom nk=(-1)^kinom{k-n-1}k,forall ninmathbb{R},kinmathbb{Z} ]

    • 吸收公式(Absorption Identity):

    [kinom nk=ninom{n-1}{k-1},(n-k)inom nk =ninom{n-1}k,forall ninmathbb{R},kinmathbb{Z} ]

    • 上指标求和(Summation on the Upper Index):

    [inom 0m+inom 1m+cdots+inom nm=sum_{k=0}^ninom km=inom{n+1}{m+1},forall n,minmathbb{N} ]

    [inom n0+inom{n+1}1+cdots+inom {n+m}m=sum_{k=0}^minom{n+k}k=inom{n+m+1}m,forall n,minmathbb{N} ]

    • 一行之和:

    [sum_{k=0}^n inom nk=(1+1)^n=2^n,forall ninmathbb{N} ]

    • 交错和:

    [sum_{k=0}^n (-1)^kinom nk=[n=0],forall ninmathbb{N} ]

    以及最重要的

    • 范德蒙德卷积(Vandermonde's Convolution):

    [sum_kinom r{m+k}inom s{n-k}=inom{r+s}{m+n},forall n,minmathbb{Z} ]

    • 常用技巧:

    [inom niinom ij=inom njinom{n-j}{i-j} ]

    所有组合数技巧

    还有就是一个关于其组合意义的推广,如果有 (n) 个两两不同的物品,将其分为 (m) 组,第 (i) 组有 (a_i) 个物品,则方案数为:

    [frac{n!}{a_1!a_2!cdots a_m!}=frac{n!}{prod_{i=1}^ma_i!} ]

    理论全都讲完了,来做道题吧:

    例题 求柿子的值:

    [sum_kinom nk^2mod (10^9+7) ]

    其中 (nleq 10^9)

    分析 根据对称公式和范德蒙德卷积:

    [sum_kinom nk^2 =sum_kinom nkinom nk =sum_kinom nkinom n{n-k} =inom{2n}n ]

    然后可以卢卡斯来做。


    20200901 更新:看到《具体数学》一些奇妙的柿子,来更新一下:

    部分和引导出的关系式:

    [sum_{kleq m}inom{m+r}{k}x^ky^{m-k}=sum_{kleq m}inom{-r}{k}(-x)^k(x+y)^{m-k},forall minmathbb{Z} ]

    (x=-1,y=1) 时((0^0=1)):

    [sum_{kleq m}inom{m+r}k(-1)^k=inom{-r}m ]

    (x=y=1,r=m+1) 时:

    [sum_{kleq m}inom{2m+1}k=sum_{kleq m}inom{m+k}k2^{m-k} ]

    而左边正好是行和的一半,所以

    [sum_{kleq m}inom{m+k}k2^{m-k}=frac{2^{2m+1}}2=2^{2m} ]

    即:

    [sum_{kleq m}inom{m+k}k2^{-k}=2^m ]

    另,最后感受一下组合数乘积的魅力(

    [sum_kinom{m-r+s}kinom{n+r-s}{n-k}inom{r+k}{m+n}=inom rminom sn,forall m,ninmathbb{Z} ]

    [sum_kinom{a+b}{a+k}inom{b+c}{b+k}inom{c+a}{c+k}(-1)^k=frac{(a+b+c)!}{a!b!c!},forall a,b,cin{N} ]

    Dougall 的恒等式:

    [sum_kfrac{inom{a+b}{a+k}inom{b+c}{b+k}inom{c+d}{c+k}inom{d+a}{d+k}}{inom{2a+2b+2c+2d}{a+b+c+d+k}}=frac{(a+b+c+d)!(a+b+c)!(a+b+d)!(a+c+d)!(b+c+d)!}{(2a+2b+2c+2d)!(a+c)!(b+d)!a!b!c!d!},forall a,b,c,dinmathbb{N} ]

  • 相关阅读:
    Spring Cloud微服务安全实战_5-4_认证服务器使用spring session
    Spring Cloud微服务安全实战_5-3_基于session的SSO
    Spring Cloud微服务安全实战_5-2_实现授权码认证流程&实现SSO初步
    Spring Cloud微服务安全实战_5-1_单点登录基本架构
    Linux启动Spring boot项目命令
    Spring Cloud微服务安全实战_4-10_用spring-cloud-zuul-ratelimit做限流
    Spring Cloud微服务安全实战_4-9_用zuul网关解耦安全逻辑和业务逻辑
    Spring Cloud微服务安全实战_4-8_网关安全_01
    Spring Cloud微服务安全实战_4-7_token&client信息持久化到数据库
    几个好用Maven 镜像仓库地址
  • 原文地址:https://www.cnblogs.com/whx1003/p/13573509.html
Copyright © 2011-2022 走看看