数论之同余

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/feilengcui008/article/details/51582198

基本性质

后面两个贼有用

  • ab(modm)a=km+b
  • ab(modm)cd(modm)a+cb+d(modm)acbd(modm)
  • (a+b)modm=((amodm)+(bmodm))modm
  • abmodm=((amodm)(bmodm))modm

一些题目的分析与证明

  • 大整数的求余与二进制字符串模3余数

    • 证明(直接证明通用x进制的字符串对整数m求余)
      A1A2A3...An
      S=A1xn1+A2xn2+...+An
      Smodm=(A1xn1+A2xn2+...+An)modm
      =((A1xn1+A2xn2)modm+(A3xn3...+An)modm)modm
      =((A1x+A2)xn2modm+(...)modm)modm
      =(((A1x+A2)modm)(xn2modm)modm+(...)modm)modm
      temp=(A1x+A2)modm
      =((temp(xn2modm))modm+(...)modm)modm
      =(((tempmodm)(xn2modm))modm+(...)modm)modm
      =((tempxn2)modm+(...)modm)modm
      =(tempxn2+A3nn3+...+An)modm

    • 由此我们可以看到递推公式temp=(tempx+Anext)modm

  • 二进制字符串模3余数,同上

  • 同余幂,求bnmodmbm
    将n表示成二进制串A1A2…An,则bn=b2A1(n1)+...
    mod
    t=(tpower)modm
    power=b2Ai(ni)modmim

同余的其他一些应用

  • 哈希
  • 生成伪随机数(比如线性同余xn=(xn1k+c)modm)
  • 加密
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值