首页 > 其他 > 详细

1093 Count PAT's (25分)

时间:2020-08-06 23:28:11      阅读:109      评论:0      收藏:0      [点我收藏+]
  • 对于整型数 \(a\)\(b\),求模运算mod或者求余运算rem的方法:

    1. 求整数商:\(c = [a/b]\);

    2. 计算模或者余数:\(r = a - c*b\).

    区别:第一步不同

    • 求模运算mod:在求 \(c\) 的值时,向 \(-\infty\) 方向舍入

    • 求余运算rem:在求 \(c\) 的值时,向 \(0\) 方向舍入

    例如:计算 \(-7 \% 4\)

    mod rem
    \(c\) \(-2\) \(-1\)
    \(r\) \(1\) \(-3\)

    ?? \(a\)\(b\) 的正负号一样的时候,两个运算的结果是等同的;当 \(a\)\(b\) 的符号不同时,rem结果的符号和 \(a\) 的一样,而mod的和 \(b\) 的一样。

  • 模运算的规则

    1. \((a \pm b) \% p = (a \% p \pm b \% p) \% p\)

    2. \((a * b) \% p = (a \% p * b \% p) \% p\)

    3. \(a ^ b \% p = (a \% p)^b \% p\)

    4. 结合律

      • \(((a+b) \% p + c) \% p = (a + (b+c) \% p) \% p\)

      • \(((a*b) \% p * c) \% p = (a * (b*c) \% p) \% p\)

    5. 交换律

      • \((a + b) \% p = (b+a) \% p\)

      • \((a * b) \% p = (b*a) \% p\)

    6. 分配率

      \(((a +b)\% p * c) \% p = ((a * c) \% p + (b * c) \% p) \% p\)

  • 重要定理

    • \(a \equiv b (\% p)\),则对于任意的\(c\),都有\((a + c) \equiv (b + c) (\%p)\)

    • \(a \equiv b (\% p)\),则对于任意的\(c\),都有\((a * c) \equiv (b * c) (\%p)\)

    • \(a \equiv b (\% p)\)\(c \equiv d (\% p)\),则 \((a + c) \equiv (b + d) (\%p)\)\((a - c) \equiv (b - d) (\%p)\)\((a * c) \equiv (b * d) (\%p)\)

  • 各个环境下%运算符的含义不同,比如c/c++,java 为取余,而python则为取模

?? code

1093 Count PAT's (25分)

原文:https://www.cnblogs.com/goldenretriever/p/13449335.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!