zoukankan      html  css  js  c++  java
  • 常用计数技巧和方法(应用篇)

    常用计数技巧和方法(应用篇)

    文章较长且大量使用 (LaTeX) 导致渲染较慢,因此分为两个部分

    由于计数方面的知识非常的繁细,容易忘记,使用时不够熟练,这里总结一下

    以下内容有所借鉴百度百科和大佬的 blog %%%

    【瞎总结】组合模型及其组合意义的阐释

    范德蒙德卷积以及一些二项式系数的推导

    基础知识请去这里 常用计数技巧和方法(理论篇)

    此文章持续更新

    组合论的一些实战应用

    均匀分布最大次序统计量的期望为 (frac {k}{k+1}(n+1))

    即从 (1 o n) 随机选出 k 个数最大值的期望

    考虑最大值为 x 的概率

    [p(x) = frac {x-1choose k-1}{n choose k} \ ]

    答案为

    [Ans = sum_{x=1}^n p(x)*x\=frac {1}{n choose k}sum_{x=1}^n {x-1choose k-1} cdot x\=frac {k}{n choose k}sum_{x=1}^n {xchoose k}\=frac {k}{n choose k}{n+1choose k+1}\=frac {k}{k+1}(n+1)\ ]

    同理可证最小值期望为 (frac {n+1}{k+1})

    洛谷P5824 十二重计数法

    n 球, m 盒,球放到盒子里的方案数

    球不同,盒子不同: (m^n)

    球不同,盒子不同,每个盒子最多装一个:(A_{m}^n)

    球不同,盒子不同,每个盒子最少装一个:容斥转化为第一问题

    球不同,盒子相同:第二类斯特林数

    球相同,盒子不同:隔板法

    球相同,盒子相同:拆分数

    拆分数多项式解法:

    (f[n][k] : n 拆分成k份方案数)

    [f[n][k] = f[n-k][k] + f[n-1][k-1]\S_k = S_{k-1}*x + S_k*x^k\S_k = frac {S_{k-1}}{1-x^k} = prod_{j = 1}^k frac 1{1-x^j}\ ]

    对 S 取 ln 再 exp 回去

    [G = ln(1 - x^n)\G' = frac{-nx^{n-1}}{1-x^n}\= -nx^{n-1}*(1+x^n+x^{2n}+x^{3n}+cdots)\G = -sum_{j=1}^{infty}frac{x^{nj}}{j}\S_k = exp(sum_{j=1}^k -G_j) ]

    错排问题的多种解法

    动态规划 (Theta(n))

    (dp[x] = (x-1)(dp[x-1]+dp[x-2]))

    考虑 x 会放到哪,首先可以随便放到前 (x-1) 的位置上,就会有一个数 y 被顶出来,如果 y 放到了 x 的位置上,方案数为 (dp[x-2]),如果 y 不可放到 x 的位置上,将是 x - 1 大小的错排

    二项式反演

    一个排列的全排列可以通过枚举有几个数错位表示

    [n! = sum_{i=0}^n{n choose i}f(i)\f(n) = sum_{i=0}^n (-1)^{n-i}{nchoose i}i!\=sum_{i=0}^n (-1)^{n-i}frac{n!}{(n-i)!}\= n!sum_{i=0}^nfrac{(-1)^i}{i!} ]

    容斥

    [f(n) = sum_{i=0}^n(-1)^i{nchoose i}(n-i)! ]

    也可得到上方式子

    多项式处理字符串问题

    我的另一篇文章

  • 相关阅读:
    深度学习模型参数计算
    keras多输出多输出示例(keras教程一)
    keras可视化报错:OSError: `pydot` failed to call GraphViz.Please install GraphViz问题解决
    git版本管理,git tag
    python封装自己的模块,pip install安装到python环境
    如何理解Virtual DOM
    使用 Hbuilder 连接手机调试移动端项目
    js 常用排序
    博客漂浮的小人
    开发者必备Linux命令
  • 原文地址:https://www.cnblogs.com/Hs-black/p/12882031.html
Copyright © 2011-2022 走看看