下面整理的是关于
我在自己的讨论稿文档里,求余的时候,都会用到 mod 这个运算符。
mod:模。意思就是求余数。
比如说:5 mod 3=2, 100 mod 11=1
读作:五模三余二,一百模十一余一
这是标准的公式化写法,大家可能不太熟悉,但是知道意思了,其实也很简单。引入Mod,主要是可以用数学公式来写,而且可以把求余数的问题化简成为普通的四则运算的问题,也比较容易表达。
在讲如何求余之前,先来普及一下余数的一些性质。
首先就是余数的加减法:比如说100除以7余2,36除以7余1。那么100+36除以7余几呢?或者100-36除以7余几呢?很显然,只要用100除以7的余数2与36除以7的余数1进行加减就可以得到答案。通过这个例子可以很明显的看出来,余数之间是可以加减的。
总结写成书面的公式的话,就是:(M+N) mod q=((M mod q)+(N mod q)) mod q
然后我们再看余数的乘法:我们继续来看上面这个例子,如果要求100*36除以7的余数是多少,该怎么求呢?
我们不妨来这样做:
100=98+2=7*14+2,36=35+1=7*5+1;
这时100*36=(7*14+2)(7*5+1)=7*14*7*5 + 2*7*5 + 7*14*1 + 2*1
很明显,100*36除以7的余数就等于2*1=2
于是我们可以得出这样的一个结论:求M*N除以q的余数,就等于M除以q的余数 乘以 N除以q的余数。
类似的,如果是求N^m 除以q的余数呢?只要我们将N^m=N*N*N*...*N,也就是说分别地用每个N除以q的余数相乘,一共m个,得出的结果再对q求余数,即可求出结果。
举例来说:求11^4除以9的余数。化成公式即是:11^4 mod 9=?
11^4 mod 9 = (9+2)^4 mod 9 = 2^4 mod 9 =16 mod 9 = 7
于是我们可以总结出这样的公式:
M*N mod q=(M mod q)*(N mod q) mod q...
相关推荐: