模运算法则的证明

本文介绍了如何利用商数和余数的关系证明模运算的一些基本性质,包括乘法、加法、减法和次幂的运算。通过详细推导,证明了(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^m)%c=[(a%c)^m]%c这些等式。这些性质在编程中对于计算和算法设计至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 说明:本文中乘法证明参考Modular multiplication (article) | Khan Academy,加法、减法、次幂的运算是由本人证明(受乘法证明的启发)。我只是新手,该博客是为了记录学习,这大佬勿喷。

基础知识: 

商数(quotient)和余数(remainder)的关系:被除数/除数 = 商数 ······ 余数,我们用字母表示A/B=Q······R,可以写成A-R = BQ


目标:证明 (a*b)%c = [(a%c)*(b%c)]%c

由商数与余数的关系,可以得到:  a = cQ+R, b = cQ`+R`

a,b代入(a*b)%c,得到:(a*b)%c=[(cQ+R)(cQ`+R`)]%c=(cQQ`+cRQ`+cR`Q+RR`)%c

由于cQQ`,cRQ`,cR`Q均可以被c整除,所以(a*b)%c = (RR`)%c

因为R,R`为余数,所以(a*b)%c = [(a%c)*(b%c)]%c


目标:证明(a+b)%c = [(a%c)+(b%c)]%c 

由商数与余数的关系,可以得到:  a = cQ+R, b = cQ`+R`

a,b代入(a+b)%c,得到:(a+b)%c = (cQ+R+cQ`+R`)%c

由于cQ,cQ均可以被c整除,所以(a+b)%c = (R+R`)%c

因为R,R`为余数,所以(a+b)%c = [(a%c)+(b%c)]%c


目标:证明(a-b)%c = [(a%c)-(b%c)]%c 

由商数与余数的关系,可以得到:  a = cQ+R, b = cQ`+R`

a,b代入(a-b)%c,得到:(a+b)%c = (cQ+R-cQ`-R`)%c

由于cQ,cQ均可以被c整除,所以(a-b)%c = (R-R`)%c

因为R,R`为余数,所以(a-b)%c = [(a%c)-(b%c)]%c


目标:证明(a^m)%c = [(a%c)^m]%c 

由商数与余数的关系,可以得到:  a = cQ+R

a代入(a^m)%c,得到:[(cQ+R)^m]%c 

由二项式定理:(cQ+R)^m=\sum_{r=0}^{m} C_{m} ^{r} (cQ)^{m-r}(R)^{r} = C_{m}^{0}(cQ)^mR^0 + C_{m}^{1}(cQ)^{m-1}R^1 + ...... + C_{m}^{m}(cQ)^{0}R^m

由于存在c的项均可以被c整除,所以(a^m)%c = (R^m)%c

因为R为余数,所以(a^m)%c = ((a%c)^m)%c

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值