数论之同余
来源:互联网 发布:android加密软件 编辑:程序博客网 时间:2024/04/28 04:05
基本性质
后面两个贼有用
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 ) - 加密
0 0
- 数论之同余
- 同余(数论基础)
- 同余定理【数论】
- 数论-同余
- 数论(同余+hash)
- 数论——同余
- 【算法】数论---同余定理
- poj2115 数论 同余方程
- 数论的同余定理
- 数论——同余
- 数论:从同余的观点出发
- 弃九法,数论同余学习笔记
- 数论,扩展欧几里德算法,同余方程
- hdu 2099 数论-同余定理
- 一元线性同余方程组【数论
- POJ——1061(数论之线性同余方程求解)
- The Embarrassed Cryptographer POJ 2635 数论之高精度求模(同余模定理+千进制)
- ACM之同余相关
- Linux内核驱动子系统(一)GPIO的使用
- 日记(2016/6/3)
- c++5
- C++回顾(1)——const的用法
- 扩容树莓派SD卡分区空间
- 数论之同余
- 配置linux DNS
- vector介绍
- 自定义土司随意拖动
- Linux学习之预定义变量
- c++6
- 友元函数
- oracle PL/SQL语句
- Winform开发框架之读卡器和条码扫描枪的数据接收处理