zoukankan      html  css  js  c++  java
  • 组合意义证明——「Zeilberger 老爷子的 T 恤上写了啥?」

    [sum_kdbinom{n}{k}^2dbinom{3n+k}{2n}=dbinom{3n}{n}^2 ]

    EI 的生成函数证明

    先为左侧赋予一个组合意义:枚举 (k),考虑有 (3n+k) 个球排成一排:

    • 在其中选出 (2n) 个准备染色,靠左的 (n) 个染为浅色,靠右的 (n) 个染为深色;
    • 靠左的 (n) 个中取 (k) 个染为浅蓝色,其余为浅绿色;
    • 靠右的 (n) 个中取 (n-k) 个染为深蓝色,其余为深绿色。

    下面是右侧的组合意义:

    • 先将 (3n) 个白色球排成一行,将其中 (n) 个染为蓝色,稍后决定深浅;
    • 再生成一个长为 (3n) 的 01 序列,其中有 (n) 个 1;
    • 显然上面两步的方案数就是 (dbinom{3n}{n}^2)
    • 拿两个指针,p 指向那行球中的白色球,q 指向 01 序列中的数,两个指针从头开始同步地扫过去;
    • q 遇到 1 就把 p 指向的白色球染为浅绿色,直到 p 之前有 (n) 个有颜色的球;此时有:
      • (k) 确定了下来:p 前有 (k) 个浅蓝色球,(n-k) 个浅绿色球,这样得到第一段球;
      • p 之后还有 (l) 个球,则 q 之后还剩 (l+k) 个数,其中 (k) 个为 1;
    • p 之后的球放到 q 之后的 0 的位置,1 的位置放深绿色球,这样得到第二段球;
    • 两段球接起来便是符合左侧组合意义的一排球。

    e.g.(b, B, g, G, x 分别代表浅蓝色、深蓝色、浅绿色、深绿色、白色)

    n=3
    
    xxbxbxbxx
    p
    011001000
    q
    
    xrbxbxbxx
     p
    011001000
     q
    
    xgbgbxbxx
       p
    011001000
      q
    
    xgbg  BxGBxx
       p
    011   001000
      q
    
  • 相关阅读:
    生产者消费者问题 一个生产者 两个消费者 4个缓冲区 生产10个产品
    三个线程交替数数 数到100
    c++ 字符串去重
    Java中一个方法只被一个线程调用一次
    GEF开发eclipse插件,多页编辑器实现delete功能
    python-arp 被动信息收集
    ssrf
    TCP
    xxe
    越权
  • 原文地址:https://www.cnblogs.com/wallbreaker5th/p/14281295.html
Copyright © 2011-2022 走看看