当前位置: 首页 > news >正文

模运算(Modular Arithmetic)的性质

模运算就像是一个“循环”的数字系统,最形象的例子就是钟表(模12)或一周的天数(模7)。
首先,我们明确一下符号表示:
a≡b(modm)a \equiv b \pmod{m}ab(modm)
这意味着 aaabbb 除以 mmm 后有相同的余数,我们称 aaabbb 在模 mmm 下同余”


模运算的核心性质

模运算保留了普通整数运算的许多良好性质,包括交换律、结合律和分配律。以下是详细的说明:

1. 同余关系的基本性质
  • 自反性:任何整数与自己同余。
    a≡a(modm)a \equiv a \pmod{m}aa(modm)
  • 对称性:如果 aaabbb 同余,那么 bbb 也与 aaa 同余。
    a≡b(modm)a \equiv b \pmod{m}ab(modm),则 b≡a(modm)b \equiv a \pmod{m}ba(modm)
  • 传递性:如果 aaabbb 同余,且 bbbccc 同余,那么 aaaccc 同余。
    a≡b(modm)a \equiv b \pmod{m}ab(modm)b≡c(modm)b \equiv c \pmod{m}bc(modm),则 a≡c(modm)a \equiv c \pmod{m}ac(modm)

这三条性质表明,同余关系是一种等价关系

2. 与四则运算的兼容性(最重要的性质)

如果 a≡b(modm)a \equiv b \pmod{m}ab(modm)c≡d(modm)c \equiv d \pmod{m}cd(modm),那么以下等式成立:

  • 加法/减法性质
    a±c≡b±d(modm)a \pm c \equiv b \pm d \pmod{m}a±cb±d(modm)

    • 解释:同余的数相加或相减,结果仍然同余。
    • 例子12≡5(mod7)12 \equiv 5 \pmod{7}125(mod7)10≡3(mod7)10 \equiv 3 \pmod{7}103(mod7),则 12+10=2212 + 10 = 2212+10=225+3=85 + 3 = 85+3=8 同余于模7(22mod  7=122 \mod 7 = 122mod7=1, 8mod  7=18 \mod 7 = 18mod7=1)。
  • 乘法性质
    a×c≡b×d(modm)a \times c \equiv b \times d \pmod{m}a×cb×d(modm)

    • 解释:同余的数相乘,结果仍然同余。
    • 例子12≡5(mod7)12 \equiv 5 \pmod{7}125(mod7)10≡3(mod7)10 \equiv 3 \pmod{7}103(mod7),则 12×10=12012 \times 10 = 12012×10=1205×3=155 \times 3 = 155×3=15 同余于模7(120mod  7=1120 \mod 7 = 1120mod7=1, 15mod  7=115 \mod 7 = 115mod7=1)。
    • 推论ak≡bk(modm)a^k \equiv b^k \pmod{m}akbk(modm)(其中 kkk 是非负整数)。这是模幂运算的基础。
  • 除法性质(有严格限制)
    除法在模运算中不能随意进行。除以一个数等价于乘以它的乘法逆元
    一般形式为:
    如果 a×c≡b×c(modm)a \times c \equiv b \times c \pmod{m}a×cb×c(modm),且 cccmmm 互质(即 gcd⁡(c,m)=1\gcd(c, m) = 1gcd(c,m)=1),那么:
    a≡b(modm)a \equiv b \pmod{m}ab(modm)

    • 解释:只有在与模数互质的情况下,才能“消去”等式两边的公因子。
    • 反例2×3≡4×3(mod6)2 \times 3 \equiv 4 \times 3 \pmod{6}2×34×3(mod6)(即 6≡12(mod6)6 \equiv 12 \pmod{6}612(mod6),两者余数均为0)。但如果两边同时除以3,会得到 2≡4(mod6)2 \equiv 4 \pmod{6}24(mod6),这显然是错误的。因为 gcd⁡(3,6)=3≠1\gcd(3, 6) = 3 \neq 1gcd(3,6)=3=1,不满足条件。
3. 缩放模数

如果 a≡b(modm)a \equiv b \pmod{m}ab(modm),且 kkk 是一个正整数,那么:
a×k≡b×k(modm×k)a \times k \equiv b \times k \pmod{m \times k}a×kb×k(modm×k)

  • 解释:等式两边和模数可以同时乘以一个相同的数。
  • 例子7≡2(mod5)7 \equiv 2 \pmod{5}72(mod5),两边乘以3,模数也乘以3,得到 21≡6(mod15)21 \equiv 6 \pmod{15}216(mod15)。(21mod  15=621 \mod 15 = 621mod15=6, 6mod  15=66 \mod 15 = 66mod15=6)。

为何这些性质如此有用?

这些性质是计算机科学和密码学的基石,因为它们允许我们:

  1. 简化计算:在处理非常大的数字时(例如密码学中的数字有数百位),我们可以利用模运算的性质,在计算的中间步骤不断取模,避免数字膨胀,最终得到与先完全计算再取模相同的结果。

    • 例如:计算 (1234×5678)mod  10(1234 \times 5678) \mod 10(1234×5678)mod10
      你可以先计算 1234mod  10=41234 \mod 10 = 41234mod10=45678mod  10=85678 \mod 10 = 85678mod10=8,然后计算 (4×8)mod  10=32mod  10=2(4 \times 8) \mod 10 = 32 \mod 10 = 2(4×8)mod10=32mod10=2。这比直接算 1234×5678=7,006,6521234 \times 5678 = 7,006,6521234×5678=7,006,652 再取模要简单得多。
  2. 实现快速模幂算法:计算 abmod  ma^b \mod mabmodm 是RSA加密等算法的核心操作。直接计算 aba^bab 几乎不可能(因为 bbb 非常大)。利用乘方的模运算性质 (a×b)mod  m=[(amod  m)×(bmod  m)]mod  m(a \times b) \mod m = [(a \mod m) \times (b \mod m)] \mod m(a×b)modm=[(amodm)×(bmodm)]modm,我们可以设计一种“平方-乘”算法,使得计算在多项式时间内完成。

  3. 定义有限域:模数为素数 ppp 的模运算系统构成了一个有限域 Fp\mathbb{F}_pFp。在这个系统中,除了0以外的每个元素都存在乘法逆元,我们可以像在实数域中一样自由地进行加、减、乘、除(除0除外)运算。这是椭圆曲线加密等现代密码学方案的基础。

总结

模运算的核心性质可以概括为:加、减、乘运算与取模操作可交换。这意味着你可以在运算过程中任何步骤进行取模,而不会影响最终结果的正确性。这使得它成为处理大数计算、构造加密算法和检验数字规律的强大工具。

运算性质条件
加法/减法(a±b)mod  m=[(amod  m)±(bmod  m)]mod  m(a \pm b) \mod m = [(a \mod m) \pm (b \mod m)] \mod m(a±b)modm=[(amodm)±(bmodm)]modm无条件
乘法(a×b)mod  m=[(amod  m)×(bmod  m)]mod  m(a \times b) \mod m = [(a \mod m) \times (b \mod m)] \mod m(a×b)modm=[(amodm)×(bmodm)]modm无条件
指数运算akmod  m=(amod  m)kmod  ma^k \mod m = (a \mod m)^k \mod makmodm=(amodm)kmodm无条件
除法(a/c)mod  m=(a×c−1)mod  m(a / c) \mod m = (a \times c^{-1}) \mod m(a/c)modm=(a×c1)modmcccmmm 必须互质
http://www.dtcms.com/a/392060.html

相关文章:

  • 破解“双高“电网难题,进入全场景构网新时代
  • 企业实训|AI技术在职能办公领域的应用场景及规划——某央企汽车集团
  • 双向链表与通用型容器
  • NodeRAG检索知识图谱复杂数据的启发
  • 卡尔曼滤波对非线性公式建模的详细步骤
  • Microsoft 365 中的 Entitlement Management(基础版)功能深度解析
  • 本科期间的技术回忆(流水账记录)
  • zotero和小绿鲸联合使用
  • Linux系统之logrotate的基本使用
  • 硬核突破!基于 ComfyUI + pyannote 实现 infiniteTalk 多轮对话数字人:从语音端点检测到上下文感知的闭环
  • 【LeetCode 每日一题】2197. 替换数组中的非互质数
  • 城市水资源与水环境:植被如何重塑地球水循环?
  • TransBench:阿里国际等推出的多语言翻译评测体系
  • Windows启动Minio服务
  • 技术原理与癌症筛查的适配性问题
  • 集合通信算法总结
  • AutoDL四周年 ,学会使用AutoDL
  • nginx如果启动失败怎么办?
  • linux使用gunzip来解压.gz文件
  • 硬件(十五)LCD
  • B3clf: 最新的精准预测药物血脑屏障透过能力的开源app
  • 第八章 惊喜10 分享+
  • SMMU 软件指南
  • [x-cmd] Windows 安装和使用 x-cmd 的方法
  • 17.渗透-.Linux基础命令(九)-Linux权限管理(chmod修改文件权限)
  • 测量交流电压,测量直流电压,兼容,ADC采样转换计算有效值
  • 红黑树封装实现map set
  • EMQX和MQTTX的安装
  • AI 大模型入门 四:检索增强生成(RAG),自动生成精准用例!
  • EDR与MITRE ATTCK 详解