A/B——同余定理+逆元(除法逆元)

本文介绍了如何利用同余定理和逆元来解决模运算问题,特别是针对大整数除法的情况。通过示例数据解释了如何计算(A/B) % 9973,其中A和B是给定的整数,B可以非常大,但A一定能被B整除,并且gcd(B, 9973) = 1。给出了输入输出格式及样例,强调了模9973下的计算方法。" 111685932,10327784,PyTorch张量详解:创建与基本操作,"['PyTorch', '深度学习', '张量操作', '数据类型', 'Numpy']

同余定理:
数论中的重要概念。给定一个正整数m,如果两个整数a和b满足a-b能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作ab ( modm)a≡b ( modm)。对模m同余是整数的一个等价关系

(a+b ) % c=(a % c+b % c) % c(a+b ) % c=(a % c+b % c) % c

(a  b) % c=(a % c  b % c) % c(a ∗ b) % c=(a % c ∗ b % c) % c


a=k1m+r1b=k2m+r2a=k1∗m+r1b=k2∗m+r2

### 关系的定义与性质 关系是数论中的一个基本概念,用于描述两个整数在除以某个模数后数相的情况。具体来说,若两个整数 $a$ 和 $b$ 在除以正整数 $m$ 时数相,则称 $a$ 与 $b$ 对模 $m$ ,记作: $$ a \equiv b \pmod{m} $$ 关系具有以下基本性质: 1. **自反性**:对于任意整数 $a$,有 $a \equiv a \pmod{m}$。 2. **对称性**:若 $a \equiv b \pmod{m}$,则 $b \equiv a \pmod{m}$。 3. **传递性**:若 $a \equiv b \pmod{m}$ 且 $b \equiv c \pmod{m}$,则 $a \equiv c \pmod{m}$。 此外,关系还支持加法、减法和乘法运算,即若 $a \equiv b \pmod{m}$ 且 $c \equiv d \pmod{m}$,则有: - $a + c \equiv b + d \pmod{m}$ - $a - c \equiv b - d \pmod{m}$ - $a \cdot c \equiv b \cdot d \pmod{m}$ 这些性质使得关系在数论和密码学中具有广泛应用[^1]。 ### 模逆元的定义与条件 模逆元(Modular Multiplicative Inverse)是指在模运算中,给定整数 $a$ 和模数 $m$,若存在整数 $x$ 使得: $$ a \cdot x \equiv 1 \pmod{m} $$ 则称 $x$ 是 $a$ 对模 $m$ 的乘法逆元,记作 $a^{-1} \pmod{m}$。模逆元存在的必要条件是 $a$ 与 $m$ 互质,即 $\gcd(a, m) = 1$。如果 $a$ 与 $m$ 不互质,则不存在模逆元。 模逆元在数论中具有重要作用,特别是在模运算中需要进行“除法”操作时。由于模运算不支持直接除法,因此可以通过乘以模逆元来实现类似功能。例如,在模 $p$ 下计算 $\frac{a}{b}$ 可以转化为计算 $a \cdot b^{-1} \pmod{p}$ [^2]。 ### 与模逆元在数论中的应用 1. **线性方程求解** 线性方程的形式为 $a \cdot x \equiv b \pmod{m}$,其解的存在性与模逆元密切相关。若 $\gcd(a, m) = 1$,则 $a$ 存在模逆元 $a^{-1}$,此时方程的唯一解为 $x \equiv a^{-1} \cdot b \pmod{m}$。若 $\gcd(a, m) = d$ 且 $d \mid b$,则方程有 $d$ 个解,可通过扩展欧几里得算法求解。 2. **模运算中的除法** 在模运算中无法直接进行除法,但可以通过模逆元实现。例如,在模 $p$ 下计算 $\frac{a}{b}$ 等价于计算 $a \cdot b^{-1} \pmod{p}$。这一特性在密码学中的椭圆曲线加密、RSA 加密等算法中被广泛应用。 3. **费马小定理与欧拉定理的应用** 费马小定理指出,若 $p$ 是质数且 $a$ 不被 $p$ 整除,则 $a^{p-2} \pmod{p}$ 是 $a$ 对模 $p$ 的模逆元。欧拉定理则推广了这一结论,若 $\gcd(a, m) = 1$,则 $a^{\phi(m)-1} \pmod{m}$ 是 $a$ 对模 $m$ 的模逆元,其中 $\phi(m)$ 是欧拉函数。 4. **密码学中的应用** 模逆元在现代密码学中扮演着关键角色。例如,在 RSA 加密算法中,私钥的生成涉及计算模逆元,以确保加密与解密过程的正确性。此外,模逆元也用于数字签名、密钥交换等场景。 ### 示例:使用 Python 计算模逆元 以下是一个使用扩展欧几里得算法计算模逆元的 Python 示例: ```python def extended_gcd(a, b): if b == 0: return a, 1, 0 else: g, x, y = extended_gcd(b, a % b) return g, y, x - (a // b) * y def mod_inverse(a, m): g, x, y = extended_gcd(a, m) if g != 1: return None # 不存在模逆元 else: return x % m # 示例:计算 3 在模 7 下的逆元 print(mod_inverse(3, 7)) # 输出 5,因为 3 * 5 ≡ 1 (mod 7) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值