zoukankan      html  css  js  c++  java
  • Lucas定理

    Lucas

    我们要求:\(C_n^m\%p\)的值,\(p\)为质数。

    那么让\(n=sp+q,m=tp+r,(q<p,r<p)\)

    我们用
    \(\tbinom{n}{m}\)表示\(C_n^m\)

    根据二项式定理,\((1+x)^n=C_n^0x^0+C_n^1x^1+...+C_n^nx^n\)

    那么\((1+x)^n\equiv(1+x)^{sp+q}\equiv ((1+x)^p)^s\times (1+x)^q \ (mod \ p)\)

    比较重要的一步到了,因为\(\tbinom{n}{m}=\frac{n!}{(n-m)!m!}\),如果\(n\)为质数,那么无论\(m\)取多少,只要\(m\ne 0\)\(m\ne n\),则\(\tbinom{n}{m}\equiv 0 \ (mod \ n)(m\ne0,m\ne n).\)

    那么现在得:\(((1+x)^p)^s\times (1+x)^q \equiv (1+x^p)^s\times (1+x)^q \ (mod \ p)\)

    那么,根据二项式定理:

    \((1+x^p)^s=C_s^0x^{0}+C_s^1x^{p}+C_s^2x^{2p}...+C_s^sx^{sp}\)

    \((1+x)^q=C_q^0x^{0}+C_q^1x^{1}+C_q^2x^{2}...+C_q^qx^{q}\)

    化简:\((1+x)^{sp+q}=\sum _{i=0}^s\tbinom{s}{i} x^{ip} \sum _{j=0}^q\tbinom{q}{j}x^j\)

    由于\(p>q\),所以\(ip+q\)唯一。

    所以对于\(m=tp+r\)项的,一定是 \(\tbinom{n}{m}x^m=\tbinom{sp+q}{tp+r}x^{tp+r}\equiv\tbinom{s}{t}x^{tp}\tbinom{q}{r}x^r\equiv\tbinom{s}{t}\tbinom{q}{r}x^{tp+r} \ (mod\ p)\)

    得:\(\tbinom{sp+q}{tp+r}\equiv\tbinom{s}{t}\tbinom{q}{r} \ (mod\ p)\)

    可以快速求出\(\tbinom{n}{m}\equiv \tbinom{sp+q}{tp+r}\equiv\tbinom{s}{t}\tbinom{q}{r} \ (mod\ p)\)

  • 相关阅读:
    2019.04.19 坦克大战
    2019.04.18 异常和模块
    2019.04.17 面向对象编程篇207
    fork操作时的copy-on-write策略
    Redis阻塞原因
    Redis持久化-fork操作
    Redis持久化-AOF重写
    Redis持久化-aof
    Redis持久化
    Shopify给左右两边布局的banner图加链接,链接失败
  • 原文地址:https://www.cnblogs.com/redegg/p/11746969.html
Copyright © 2011-2022 走看看