zoukankan      html  css  js  c++  java
  • 关于n!mod p

    2016.1.26

     

    让我们来研究一下关于n!在mod p下的性质,当然这里p是质数。

    首先n!=a*pe,其中p不可整除a。我们现在来做两件事情,求e和a mod p.

    显然,n/p表示[1,n]中p的倍数的个数,我们把[1,n]所有的数都除以p,那么剩余的数里还是p的倍数的数在除之前一定至少含有因子p2,那么在除以p之后的序列里p的倍数的个数就是n/p2

    如此下去,我们便可以知道,n!所含因子p的个数e=n/p+n/p2+n/p3+……

    这样算出来的时间复杂度显然是O( logp(n) ).

     

    然后再说a mod p怎么做。

    显然[1,n]中非p倍数模p的余数成周期性,如下所示:

    1,2,3,…,p-1,1,2,…,p-1,1,2,…,p-1,1,2,…,n mod p(最后一个周期可以不完整)

    那么,就有a=(p-1)!(n/p) * (n mod p)!.

    根据威尔逊定理,(p-1)!≡-1(mod p).

    于是就有a≡(-1)(n/p) * (n mod p)! (mod p)

    这下好办了吧

  • 相关阅读:
    第一次冲刺6
    人机交互课下作业
    第一次冲刺5
    第一次冲刺4
    第一次冲刺3
    第一次冲刺2
    第一次冲刺
    典型用户分析
    掌握 需求过程阅读笔记02
    掌握 需求过程阅读笔记01
  • 原文地址:https://www.cnblogs.com/16er/p/5160255.html
Copyright © 2011-2022 走看看