您的位置:首页 > 其它

数论之同余

2016-06-04 09:02 417 查看

基本性质

后面两个贼有用

a≡b(modm)⟺a=k∗m+b

a≡b(modm)∧c≡d(modm)⟹a+c≡b+d(modm)∧a∗c≡b∗d(modm)

(a+b)modm=((amodm)+(bmodm))modm

a∗bmodm=((amodm)∗(bmodm))modm

一些题目的分析与证明

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

证明(直接证明通用x进制的字符串对整数m求余)

假设字符串为A1A2A3...An

则S=A1∗xn−1+A2∗xn−2+...+An为字符串代表的十进制值

Smodm=(A1∗xn−1+A2∗xn−2+...+An)modm

=((A1∗xn−1+A2∗xn−2)modm+(A3∗xn−3...+An)modm)modm

=((A1∗x+A2)∗xn−2modm+(...)modm)modm

=(((A1∗x+A2)modm)∗(xn−2modm)modm+(...)modm)modm

令temp=(A1∗x+A2)modm

=((temp∗(xn−2modm))modm+(...)modm)modm

=(((tempmodm)∗(xn−2modm))modm+(...)modm)modm

=((temp∗xn−2)modm+(...)modm)modm

=(temp∗xn−2+A3∗nn−3+...+An)modm

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

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

同余幂,求bnmodm,b和m都较大

将n表示成二进制串A1A2…An,则bn=b2A1∗(n−1)+...

用mod的乘法性质和大整数除法类似的证明方法可以得出递推公式

t=(t∗power)modm

power=b2Ai∗(n−i)modm即第i项对m的余数,可以通过幂次递增的递推求得

同余的其他一些应用

哈希

生成伪随机数(比如线性同余xn=(xn−1∗k+c)modm)

加密
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数论 同余