• 数论


    在算法竞赛中经常会用到各式各样的取模运算,下面将常用的总结下来以便自己复习

    什么是取模运算

    在java和c/c++中

    对于整型数a,b来说,取模运算:
    1.求整数商: c = a/b;
    2.计算模: a % b = a - c * b;
    例子
    9 % 4 = 9 - (9 / 4) * 4 = 1
    9 %-4 = 9 - (9 /-4) *-4 = 1
    -9 % 4 = -9 - (-9 / 4) * 4 =-1
    -9 %-4 = -9 - (-9 /-4) *-4 =-1

    在python中

    a % b = a - n b,其中n为不超过a / b的最大整数
    1.求商:c = a / b
    2.取 n:n为不超过c的最大整数即[c]
    3.计算模:a % b = a - n
    b

    取模运算的性质

    模运算与基本四则运算有些相似,但是除法例外。其规则如下:
    (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) % p
    结合律:
    ((a+b) % p + c) % p = (a + (b+c) % p) % p
    ((ab) % p * c)% p = (a * (bc) % p) % p
    交换律:
    (a + b) % p = (b+a) % p
    (a * b) % p = (b * a) % p
    分配律:
    (a+b) % p = ( a % p + b % p ) % p
    ((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p

    tips
    当我们只关注某个整数的后k位时我们可以利用取模运算
    例如:
    long long x = 12345678911;
    我们只关注这个数的后4位可以利用temp = x % 10^4
    利用这个temp代替x与其他数字的四则运算

  • 相关阅读:
    实现CA和证书申请
    1.ssh端口
    1.对称加密6和7的操作
    关于网页访问并发量,统计前十,防火墙
    双指针法
    并查集
    c++常用函数
    vector常用方法
    贪心算法
    字符串类问题
  • 原文地址:https://www.cnblogs.com/wlw-x/p/11735614.html
Copyright © 2020-2023  润新知