概念
模算数或称同余运算(英语:Modular arithmetic)是一个整数的算术系统,其中数字超过一定值后(称为模或余数)后会“卷回”到较小的数值,模算数最早是出现在卡尔·弗里德里希·高斯在1801年出版的《算术研究》一书中。
模算数常见的应用是在十二小时制,将一天分为二个以十二小时计算的单位。假设现在七点,八小时后会是三点。用一般的算术加法,会得到7 + 8 = 15,但在十二小时制中,超过十二小时会归零,不存在“十五点”。类似的情形,若时钟目前是十二时,二十一小时后会是九点,而不是三十三点。小时数超过十二后会再回到一,为模12的模算数系统。依照上述的定义,12和12本身同余,也和0同余,因此12:00的时间也可以称为是0:00,因为模12时,12和0同余。
以上见于维基百科
模算数可以在导入整数的同余关系后,通过经典算数的运算法则来推导模运算的运算法则。若有两个正整数𝑎和𝑏,并且二数的差值𝑎−𝑏为𝑛的整数倍数,我们就可以说𝑎和𝑏在模𝑛同余。
通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:
当x和y的正负号一样的时候,两个函数结果是等同的;当x和y的符号不同时,rem函数结果的符号和x的一样,而mod和y一样。
这是由于这两个函数的生成机制不同,rem函数采用fix函数,而mod函数采用了floor函数(这两个函数是用来取整的,fix函数向0方向舍入,floor函数向无穷小方向舍入)。
结论
我们在模算数里可以使用除除法以外的任何四则运算,除法可以使用逆元来解决。
满足结合律,分配律,交换律。