求模(mod)运算的应用

来源:互联网 发布:汉王pdf识别软件 编辑:程序博客网 时间:2024/05/21 17:25

1、mod运算的性质

结合律
((a+b) mod p + c)mod p = (a + (b+c) mod p) mod p
((a*b) mod p * c)mod p = (a * (b*c) mod p) mod p
交换律
(a + b) mod p = (b+a) mod p
(a × b) mod p = (b × a) mod p
分配律
((a +b)mod p × c) mod p = ((a × c) mod p + (b × c) mod p) mod p
(a×b) mod c=(a mod c * b mod c) mod c
(a+b) mod c=(a mod c+ b mod c) mod c
(a-b) mod c=(a mod c- b mod c) mod c

    mod运算通俗说是求余。a对b求余的结果余数一定小于b。所以上面的一些定律你就会明白为什么要多加mod符号,就是因为只要外层有一个mod,展开时也必须保证整体的结果小于模数。

2.mod运算的应用

例一:判断能否整除

i%n==0,那么i能够被n整除。

关于整除,详解一下我们之前判断被n整除的方法的由来。

被2整除:

判断方法:偶数

被3整除:

判断方法:i的每位和能够整除3

被6整除:

判断方法:先判断能被2整除,再判断能否被3整除

被8整除:

判断方法:判断后三位是否能够整除8

证明方法如下:



      看来以前的数学公式或者规则都很有用,当论证过后能够记得更清吧。

第二个应用:

       在博弈论中也有所应用,如甲乙两个人玩游戏,共有14个棋子,谁最后取完谁赢。每次只可取1-3个棋子,不可不取。那么如果甲先取,该如何取才能够必胜?

       其实博弈论一定要想好终态,也即最后是怎样赢的。所以这套赢的规律你要清楚,如本题答案:

       甲第一把:14%4=2

       之后若乙取x,那么甲取4-x。如此能够保证甲必胜。

       总的来说,mod运算其实也并没有专属的算法。mod运算只是一个运算,上面所说的两个例子是mod运算的两个应用。





0 0