微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数学中的模数和负数?

如何解决数学中的模数和负数?

今晚我很好奇数学中的模负数。

不管是编程语言,计算器虽然它returns different values都依赖于自己的公式,如果在初中考试中有这些问题,正确答案是什么:

  -7 mod  2 = ?
   7 mod -2 = ?
  -7 mod -2 = ? 

ps:如果我太老了,不记得那些“基础问题”的答案,我很抱歉,谢谢你的好意给我一个正确的答案!

ps2:致提出这个问题的人:相信我这个问题真的很有帮助,至少它可以帮助你理解为什么这段代码会失败:

function isEvenorOdd(num) {
    return num % 2 === 1 ?'odd' : 'even';
}

isEvenorOdd(5); // 'odd'
isEvenorOdd(18); // 'even'
isEvenorOdd(0); // 'even'
isEvenorOdd(-7); // 'even'

解决方法

数学中,模数必须>1,并且约定是模运算产生bash: python: command not found 的最小非负整数解:

a+km=b

很容易将定义扩展为包含负数(以及 1 和 -1):

-7 mod  2 = 1
 7 mod -2     Illegal
-7 mod -2     Illegal

但是在计算中,不同的语言使用不同的约定:

-7 mod  2 = 1
 7 mod -2 = 1
-7 mod -2 = 1
-7 mod  3 = 2

我怀疑您的系统显示 -7 mod 2 = {1,or -1,or undefined} ,因此 -7 mod 2 = -1 产生“偶数”(因为 -1 ≠ 1)。

,

要计算 x mod m,其中 x 为负,您需要不断将 m 添加到 x,直到它变为非负,所以 -7 % 2 = -7 + 2 + 2 + 2 + 2 = 1。

要检查一个数是奇数还是偶数,总是以绝对值来做,比如 |x| mod m,因此您无需担心模数的负值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。