扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
python计算取模的方法是:(比如a % b)
“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 创新互联建站是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于成都网站设计、做网站、成都外贸网站建设公司、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!
先算出a除去b的值,然后将其下取整,然后把b乘回来,然后从a当中扣掉这个值
所以整个式子就是a % b = a - b × floor( a / b )
那我们按这样算一遍,18 % -5 = 18 - (-5) × floor(-3.6) = 18 - 20 = -2
不同语言对取模有不同的规则,有的是下取整,有的是直接截去小数部分,在正数范围内这两种方法结果是一样的,但是负数就会产生差别。所以在对负数取模之前要考虑一下你想要得到怎么样的一个数值。
你也可以在取模之后进行一些处理。我个人的做法是在取模之后通过加减模数,把结果全部变成正数。
Python中的取模运算符用于求余数。它通常写作%,并用于计算两个整数相除时的余数。例如,如果我们将9除以4,得到2,余数为1,因此9 % 4等于1。
9 % 4
1
在Python中,取模运算符可用于任何整数,包括正整数、负整数和0。例如,以下代码演示了使用取模运算符来计算几个负整数的余数:
-9 % 4
3
-8 % 3
2
-7 % 2
1
对于该算术运算符: % ,取模运算存在如下定理:
对于一个正整数 而言,一定存在等式 ,代表 可以被拆分成最多 个 并且余下一个 ,此时称 。
例如:正整数 17,存在等式 17 = 3 * 5 + 2,即 17 % 5 = 2.
这里介绍一下数学中的一种运算, 取余运算 。
两者在对正整数的运算中完全没有区别,但是对于负整数的运算,则会存在一定的区别。
但是要记住下面这句话,就可以很好的进行区分:
取余公式中的k要向0靠拢,也就是如果大于等于0,那就要向下取整;如果小于0,那就要向上取整。
取模公式中的k要向负无穷靠拢,不管什么情况,都是向下取整。
或者是
向上取整 math.ceil() 可以理解成 要选择大于等于该数值的整数部分的最小整数;
向下取整 math.floor() 可以理解成 要选择小于等于该数值的整数部分的最大整数。
也就是:
下面做些实际运算,加深一下印象:
对于整型数a,b来说,取模运算或者求余运算的方法都是:
1.求 整数商: c = a/b;
2.计算模或者余数: r = a - c*b.
求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0 方向舍入(fix()函数);而取模运算在计算c的值时,向负无穷方向舍入(floor()函数)。
例如:计算-7 Mod 4
那么:a = -7;b = 4;
第一步:求整数商c,如进行求模运算c = -2(向负无穷方向舍入),求余c = -1(向0方向舍入);
第二步:计算模和余数的公式相同,但因c的值不同,求模时r = 1,求余时r = -3。
归纳:当a和b符号一致时,求模运算和求余运算所得的c的值一致,因此结果一致。
当符号不一致时,结果不一样。求模运算结果的符号和b一致,求余运算结果的符号和a一致。
另外各个环境下%运算符的含义不同,比如c/c++,java 为取余,而python则为取模。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流