zoukankan      html  css  js  c++  java
  • 组合数学常用公式总结-更新中

    • 小白整理,有误请大佬斧正

    排列组合

    排列

    1. 无其他限制下,从n个物体种选择r个出来的所有排列情况为(A(^r_n)=frac{n!}{(n-r)!}) r>n时(A(^r_n)=0)

    2. 从n个物体种选择r个的圆排列(P(^r_n)=frac{A(^r_n)}{r})

    多重集的排列

    1. 设n种元素每种互不相同,每种元素都有(infty)种(无限多重集),在这n种中取r个的排列为(n^r)

    2. 设n种元素每种互不相同,每种元素都有(a_1,a_2,a_3...a_n)种(有限多重集),在这n种中取r个,当(min({a_1,a_2,...a_n})>=r)时,排列数依然为(n^r)

    3. 设n种元素每种互不相同,每种元素都有(a_1,a_2,a_3...a_n)种(有限多重集),其全排列为(frac{(a_1+a_2+a_3+...+a_n)!}{{a_1}!{a_2}!...{a_n}!})

    4. 设n种元素每种互不相同,每种元素都有(a_1,a_2,a_3...a_n)种(有限多重集),在这n种中取r个,当(min({a_1,a_2,...a_n})<r)时,排列为(sum_{k_1+k_2+...+k_n=r}frac{r!}{{k_1}!{k_2}!...{k_n}!})

    组合

    1. 无限制下,从n个物体选择r个物体的组合为(C(n,r)=frac{n!}{r!(n-r)!}), 亦写作((^n_r)=frac{n!}{r!(n-r)!}), r>n时,(C(n,r)=0)

    多重集的组合

    1. 设n种元素每种互不相同,每种元素都有(infty)种(无限多重集),在这n种中取r个的组合为((^{n+r-1}_{r})=(^{n+r-1}_{n-1}))

    2. 设n种元素每种互不相同,每种元素都有(a_1,a_2,a_3...a_n)种(有限多重集),在这n种中取r个,当(min({a_1,a_2,...a_n})>=r)时,组合数为((^{n+r-1}_{r})=(^{n+r-1}_{n-1}))

    3. 设n种元素每种互不相同,每种元素都有(a_1,a_2,a_3...a_n)种(有限多重集),在这n种中取r个,当(min({a_1,a_2,...a_n})<r)时,组合为$$

    组合数公式

    1. (C(_n^k)=C(n-1,k)+C(n-1,k-1)),杨辉恒等式
    2. (C(_n^k)=C(n,n-k)),对称性
    3. (sum_{i=0}^nC(n,i)=2^n),单行和
    4. (sum_{i=0}^nC(n,i)^2=C(2n,n)),单行平方和
    5. (sum_{i=0}^nC(_{k+i}^k)=C(_{n+k+1}^{k+1})),斜(60^circ)行和=反斜下一行对应值
    6. (f(n)=egin{cases} sum_{i=0}^{n/2-1}C(n/2+i,2i+1)& ext nequiv 0 mod 2\ sum_{i=0}^{(n-1)/2}Cigg((n-1)/2+i,2iigg)& ext nequiv 1 mod 2 end{cases}) , (ig(30^circ)斜行和等于Fibonacci数列(ig))
    7. (C(n,i)=frac{n-i+1}{i}C(n,i-1)), 递推式
    8. (C(n,m))的奇偶性:n&m=m为奇,否则为偶(lucas定理推论)

    二项式定理

    • ((a+b)^n=sum_0^nC(_n^i)a^ib^{n-i})

    鸽巢原理

    • n+1只鸽子飞向n个鸽巢,一定存在两只鸽子飞向了同一个鸽巢

    容斥原理


    • 容斥原理的题常考虑反面
    错排问题
    1. (D_n=n!ig(1-frac{1}{1!}+frac{1}{2!}-frac{1}{3!}+...+(-1)^nfrac{1}{n!})
    2. 递推式推导

    考虑在(D_{n-1})中加入n来生成n个数的错排,数n可以与前面n-1个数任一交换即可,贡献为((n-1)D_{n-1})
    考虑在有1..n-1的一个序列,我们直接加入n来生成n的错排,可以在n-1个数任选一个数与n交换位置,然后剩下的n-2个数进行错排,这样就生成了n的错排,贡献为((n-1)D_{n-2})
    因此最终的递推式就是(D_n=(n-1)(D_{n-1}+D_{n-2}))
    (D_1=0,D_2=1,D_3=2,D_4=9...)

    1. (D_n=nD_{n-1}+(-1)^n)

    特殊计数序列

    Fibonacci序列

    1. (f_n=f_{n-1}+f_{n-2},ngeq3,f_1=f_2=1)
    2. (f_n=frac{1}{sqrt{5}}ig[(frac{1+sqrt{5}}{2})^n-(frac{1-sqrt{5}}{2})^nig])
    3. (f_nequiv 276601065(691504013^n-308495997^n)mod 10^9+9)注意仅限模1e9+9的情况下
    4. (sum_{i=1}^nf_i=f_{n+2}-1),前缀和公式
    5. (f_1+f_3+...+f_{2n-1}=f_{2n}),奇数项前缀和公式
    6. (f_2+f_4+..+f_{2n}=f_{2n+1}),偶数项前缀和公式
    7. (sum_{i=1}^nf_i^2=f_nf_{n+1}),平方和公式
    8. (f_n^2=(-1)^{n+1}+f_{n-1}f_{n+1})
    9. (f_{2n}=f_n(f_{n+1}+f_{n-1}))
    10. (f_n equiv 0mod pRightarrow f_{nk} equiv 0 mod p,mbox{k为正整数})
    11. (gcd(f_n, f_m) = f_{gcd(n, m)})
    12. 对于质数P, f[n] % P 有循环节, 如果5是模P的二次剩余,则循环节长度是P - 1的因子, 否则是2(P + 1)的因子; 类Fibonacci也类似。
    13. (f_n=sum_{i=0}^mC(n-1-i,i),m leq n-1-m),杨辉三角斜(30^circ)度求和

    catalan数

    1. (C_n=sum_{k=0}^{n-1}C_nC_{n-k-1},n geq 2,C_0=C_1=1)
    2. (C_0=1,C_1=1,C_2=2,C_3=5,C_4=14,C_5=42,C_6=132,C_7=429,C_8=1430,C_9=4852)...
    3. (C_n=frac{C(2n,n)}{n+1}=C(2n,n)-C(2n,n-1)),注意组合数区分卡特兰数
    4. (C_n=frac{4n-2}{n+1}C_{n-1})

    用于栈进出序列,二叉树的种类枚举、多边形分成三角形的个数、圆括弧插入公式中的方法数。。。

    Stirling数

    (Stirling估计式:n!simsqrt{2pi n}{(frac{n}{e})}^n)

    第一类Stirling数
    1. 正负,其绝对值的实际意义为n个元素的集合组成m个的圆排列的数目,((ngeq m))
    2. 递推式:(S_u(n,m)=S_u(n-1,m)+(n-1)S_u(n-1,m-1))
    3. 边界以及结论

    (S_u(0,0)=1\S_u(n,0)=0\S_u(n,1)=1\S_u(n,n)=1\S_u(n,n-1)=C(n,2)\S_u(n,n-2)=2C(n,3)+3C(n,4)\sum_{i=0}^nS(n,i)=n!)

    第二类Stirling数
    1. n个元素组成拆成m个非空集合的方案数
    2. 递推式:(S_2(n,m)=S_2(n-1,m-1)+mS_2(n-1,m))
    3. 边界以及结论

    (S_2(n,0)=0^n\S_2(n,1)=1\S_2(n,n)=1\S_2(n,2)=2^{n-1}-1\S_2(n,n-1)=C(n,2)\S_2(n,n-2=C(n,3)+3C(n,4)))

    拆分数

    1. 整数n拆成r个正整数之和为n的r拆分数,记作(P_r(n))
    2. (P_1(n)=1,P_n(n)=1,P_{n-1}(n)=1,P_{n-2}(n)=2,P_{n-3}(n)=3)
    3. (P_2(n)=iglceil{frac{n-1}{2}}ig ceil,n geq 2)
    4. (P_r(n)=sum_{i=1}^r P_i(n-r))

    装箱问题

    • n个球放入r个盒子成为装箱问题
    1. 相同球n和相同盒子r,(n geq r)

    无空盒子 (P_r(n))
    可以有空盒子 (sum_{i=1}^rP_i(n))

    1. 相同球不同盒子

    无空盒子 (C(n-1,r-1))
    可以有空盒子 (C(n+r-1,r-1))

    1. 不同球相同盒子

    无空盒子 (S_2(n,r))
    可以有空盒 (sum_{i=1}^rS_2(n,i))

    1. 不同球不同盒子

    无空盒子 (r!S_2(n,r))
    可以有空盒子 (r^n)

    生成函数

    • ((1-x)^{-m}=sum_0^infty{x^i(^{m+i-1}_{m-1})})

    burnside引理&polya定理

    • 两者都是解决考虑旋转或是翻转等计数问题的理论
    1. burnside引理

    (G={a_1,a_2,…a_g})是目标集([1,n])上的置换群。每个置换都写成不相交循环的乘积。 是在置换(a_k)的作用下不动点的个数,也就是长度为1的循环的个数。通过上述置换的变换操作后可以相等的元素属于同一个等价类。若(G)([1,n])划分成(l)个等价类,则:

    [l=frac{1}{overline{|G|}}sum_{i=1}^gc_1(a_i) ]

    (mbox{其中}c_1(a_i)mbox{代表}a_imbox{中包含的一阶循环(不动点)的个数})

    1. polya定理

    (G)是n个对象的一个置换群, 用m种颜色染图这n个对象,则不同的染色方案数为:

    [frac{1}{overline{|G|}}sum_{i=1}^gm^{c(overline{p_i})}$$, 其中$G={overline{p_1},overline{p_2},...overline{p_g}}, c(overline{p_i})mbox{表示}overline{p_i}mbox{的循环节数(阶)}$]

  • 相关阅读:
    Building a flexiable renderer
    Indirect Illumination in mental ray
    我的心情
    Cellular Automata
    Subsurface Scattering in mental ray
    Shader Types in mental ray
    BSP Traversal
    我的渲染器终于达到了MR的速度
    How to handle displacement and motion blur
    说明
  • 原文地址:https://www.cnblogs.com/mooleetzi/p/11330256.html
Copyright © 2011-2022 走看看