取模运算_取模运算实现 - CSDN
精华内容
参与话题
  • 取模运算

    千次阅读 2018-11-23 07:52:45
    取模运算 主要是用来求两个大数a,b进行 + or - or * 后对某个数mod求余 比如a+b或者a*b超过了long long int ,就要用取模运算把值限制在0~mod内 加法 (a+b)%mod=(a%mod+b%mod)%mod; 减法 (a-b)%mod=(a%mod-b%mod)%...

    取模运算

    主要是用来求两个大数a,b进行 + or - or * 后对某个数mod求余
    比如a+b或者a*b超过了long long int ,就要用取模运算把值限制在0~mod内

    加法
    (a+b)%mod=(a%mod+b%mod)%mod;
    减法
    (a-b)%mod=(a%mod-b%mod)%mod;
    乘法
    (ab)%mod=(a%mod)(b%mod)%mod;
    除法 (用到逆元,尚未了解)

    当两个数a和b(a>b)
    (a-b)%mod=(a%mod-b%mod)%mod;
    如果a%mod<b%mod就要用

    (a%mod-b%mod+mod)%mod;
    

    例如:

    a=12,b=9,mod=10;
    a%mod=2,b%mod=9;
    因为2-9<0,得到的是负数,之前a-b是正数
    所以应该是(a%mod-b%mod+mod)%mod;
    就是(12-9)%10=(12%10-9%10+10)%10=3%10=3

    展开全文
  • 取模运算的理解

    千次阅读 2019-07-17 16:42:19
    问题:在学习计算机组成中,不理解补码中取模运算的意义,故google一下,整理知识。 定义:模除(又称模数、取模操作、取模运算等,英语:modulo 有时也称作 modulus)得到的是一个数除以另一个数的余数。 公式:在...

    问题:在学习计算机组成中,不理解补码中取模运算的意义,故google一下,整理知识。

    1. 定义:模除(又称模数、取模操作、取模运算等,英语:modulo 有时也称作 modulus)得到的是一个数除以另一个数的余数。
    2. 公式:在数学中,取模运算的结果就是欧几里德除法的余数。当然也有许多其他的定义方式。计算机和计算器有许多种表示和储存数字的方法,因此在不同的硬件环境下、不同的编程语言中,取模运算有着不同的定义。几乎所有的计算系统中,a 除 n 得到商 q 和余数 r 均满足以下式子:在这里插入图片描述
    3. 然而这样做,当余数非 0 时,余数的符号仍然是有歧义的:余数非 0 时,它的符号有两种选择,一个正、一个负。[注 2] 通常情况下,在数论中总是使用正余数。但在编程语言中,余数的符号取决于编程语言的类型和被除数 a 或除数 n 的符号。 标准 Pascal 和 ALGOL 68 总是使用 0 或正余数;另一些编程语言,如 C90 ,当除数 a 和除数 n 都是负数时,C90 标准并没有做具体的规定,而是留给编译器去定义并实现[6]。 在大多数系统上 a mod 0 时未定义的,虽然有些系统定义它就等于 a。

      “模”是指一个计量系统的计数范围.如时钟等.计算机也可以看成一个计量机器,它也有一个计量范围,即都存在一个“模”.
      例如:时钟的计量范围是0~11,模=12.表示n位的计算机计量范围是0~2(n)-1,模=2(n).【注:n表示指数】

    “模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数.任何有模的计量器,均可化减法为加法运算.
    例如: 假设当前时针指向10点,而准确时间是6点,调整时间可有以下两种拨法:
    一种是倒拨4小时,即:10-4=6
    另一种是顺拨8小时:10+8=12+6=6
    在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替.
    对“模”而言,8和4互为补数.实际上以12模的系统中,11和1,10和2,9和3,7和5,6和6都有这个特性.共同的特点是两者相加等于模.
    对于计算机,其概念和方法完全一样.n位计算机,设n=8, 所能表示的最大数是11111111,若再加1称为100000000(9位),但因只有8位,最高位1自然丢失.又回了00000000,所以8位二进制系统的模为2(8). 在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了.把补数用到计算机对数的处理上,就是补码.

    参考文献:

    1. 维基百科-取模运算
    2. https://blog.csdn.net/netHibernate/article/details/4533859
    展开全文
  • 取模运算符( % )

    千次阅读 2019-09-25 17:22:50
    8 % 4 2余0 0 9 % 4 2余1 1 9 % 5 1余4 4 11 % 5 2余1 1 8 % 5 1余3 3 得到的结果为做除法后的余数,%是求余运算符 ...

    8 % 4      2余0      0

    9 % 4      2余1      1

    9 % 5      1余4      4

    11 % 5     2余1     1

    8 % 5      1余3      3

    得到的结果为做除法后的余数,%是求余运算符

    展开全文
  • 取模运算规则

    千次阅读 2019-03-06 23:30:14
    运算与基本四则运算有些相似,但是除法例外。其规则如下: (a + b) % p = (a % p + b % p) % p (a - b) % p = (a % p - b % p) % p (a * b) % p = (a % p * b % p) % p a ^ b % p = ((a % p)^b)...

    模运算与基本四则运算有些相似,但是除法例外。其规则如下:

    1. (a + b) % p = (a % p + b % p) % p 

    2. (a - b) % p = (a % p - b % p) % p 

    3. (a * b) % p = (a % p * b % p) % p 

    4. a ^ b % p = ((a % p)^b) % p 

    展开全文
  • 取模运算和取余运算

    万次阅读 2018-11-01 16:55:27
    对于整型数a,b来说,取模运算或者求余运算的方法都是: 1.求整数商: c = a/b; 2.计算模或者余数: r = a - c*b.   求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0方向舍入(fix()函数);而取模...
  • 取模运算总结 - 数论

    万次阅读 多人点赞 2017-08-14 15:27:27
    - 编程竞赛有相当一部分题目的结果过于庞大,整数类型无法存储,往往只要求输出取模的结果。 - 例如(a+b)%p,若a+b的结果我们存储不了,再去取模,结果显然不对,我们为了防止溢出,可以先分别对a取模,b取模,再求和...
  • 取模(余)%运算详解

    千次阅读 2019-08-02 17:40:53
    取模(余)%运算详解 1、JAVA中 对于整型数a,b来说,取模运算是: 1.求 整数商: c = a/b; 2.计算模: a%b= a - c*b. 例如: 9 % 4= 9 - ( 9 / 4) * 4 = 1 ...
  • 大数取模运算,快速幂取模运算

    万次阅读 2018-10-02 12:31:06
    1.快速幂取模 http://www.cnblogs.com/yinger/archive/2011/06/08/2075043.html 快速幂取模就是在O(logn)内求出a^n mod b的值。算法的原理是ab mod c=(a mod c)(b mod c)mod c  long exp_mod(long a,long n,...
  • 取模运算和求余运算的区别

    万次阅读 2017-07-28 17:57:33
    通常情况下取模运算(mod)和求余(rem)运算被混为一谈,因为在大多数的编程语言里,都用’%’符号表示取模或者求余运算。在这里要提醒大家要十分注意当前环境下’%’运算符的具体意义,因为在有负数存在的情况下,两者...
  • 按照我的理解来看,之所以要是2的n次方,是为了能使```indexFor```中的位运算代替取模运算。 > 有些人2^n-1 正好二进制位全是1,类似这种```1111111```,这样与运算```hash```冲突才能降到到最低,但是直接...
  • 本篇文章是对取模运算%和位与运算&之间的关系进行了详细的分析介绍,需要的朋友参考下
  • 取模运算法则,异或运算法则

    千次阅读 2019-12-03 09:34:11
    取模运算法则(百度百科) 定义 给定一个正整数p,任意一个整数n,一定存在等式 : n = kp + r ; 其中 k、r 是整数,且 0 ≤ r < p,则称 k 为 n 除以 p 的商,r 为 n 除以 p 的余数。 对于正整数 p 和整数 a,b...
  • 取模运算的性质

    万次阅读 2015-07-27 17:13:56
    定义 给定一个正整数p,任意一个整数n,一定存在...取模运算:a % p(或a mod p),表示a除以p的余数。 模p加法: ,其结果是a+b算术和除以p的余数。 模p减法: ,其结果是a-b算术差除以p的余数。 模p乘法: ,其
  • Java%(取模运算)详解

    万次阅读 2017-01-24 15:15:17
    一.Java的取模运算1.实现算法public static double ramainder(double dividend, double dividor) { return dividend - dividend / dividor * dividor; }2.java的取模运算支持类型:字符型(自然不包括负数)、字节型...
  • 位运算和取模运算的运算效率对比

    千次阅读 2019-09-25 07:19:16
     通过简单的测试,来探究一样位运算和取模运算的运算效率对比。 一、测试代码: 1 public class BitAndModulus { 2 @Test 3 public void bit() { 4 int number = 10000 * 10;//分别取值1...
  • 取模运算的特殊优化

    2019-09-11 10:09:31
    优化方法:将取模运算转化为位运算,加快执行。 理论基础: 命题:x % 2^N == x & (2^N - 1) 证明: 因为 (2^N-1)的二进制的低N位全是1,其余位全是0, 所以 (x & (2^N-1))是x的二进制的低N位的值, ...
1 2 3 4 5 ... 20
收藏数 54,029
精华内容 21,611
关键字:

取模运算