我从Java来Ruby和这个-7模3 = 2个我的谜题为什么在Ruby中-7 mod 3 = 2?
回答
由于-7减去2是3
倍数更具体地,在这种情况下使用的模量发生的执行选择正模量。一些实现选择与第一个操作数具有相同符号的模数,另一些实现选择正数等。
您可以在Ruby中使用'remaining()'来获得与Java中相同的结果。请参阅http://en.wikipedia.org/wiki/Modulo_operation获取以不同语言列出实施选项的表格。 – 2012-07-06 08:11:33
thx我对模数的理解是-7/3 = -2和-1余数。 => -2 * 3 = -6 + -1 = -7 – noircc 2012-07-06 08:29:34
想象一个数字轮,其顺时针旋转的元素为{0, 1, 2}
。
从0开始,逆时针移动7个位置,因为您有-7
(如果您有+5 mod 3
,您将顺时针移动5
位置)。
那么,让我们来看看,这是否把我们:
Current Number: 0 -1 -2 -3 -4 -5 -6 -7
Wheel Number: 0 2 1 0 2 1 0 2
MOD函数给出了上面的最大倍数小于第一个参数剩余。
如果它是7 MOD 3,则图6是小于7的最大倍数,所以1是答案(7-6)
由于它是-7,-9然后比最大mulitiple少-7,所以2是答案(-7- -9或-7 + 9)
- 1. Java:为什么7/-3是-2?
- 2. 为什么1 +++ 2 = 3?
- 3. 为什么minus比mod慢?
- 4. 为什么15.5 mod 5 = 0?
- 5. 3/2和-3/2有什么区别?
- 6. 有什么语法MOD在java中
- 7. 为什么2 /// 2在Javascript中是2?
- 8. Ruby中`Fixnum`和`3`有什么不同?
- 9. 为什么(2/3)在rails中评估为0?
- 10. 为什么我们不使用2-3或2-3-4-5树?
- 11. 为什么在Ruby on Rails 3中返回Nil?
- 12. 为什么'7'+ 4给出'74',而'7' - 4在JavaScript中给出3?
- 13. 为什么-2?为什么不是-3或-1?
- 14. C#和Java:3/2 * 3.2 = 3.2,为什么?
- 15. 为什么NUM = 1 - - “2” 等于3个
- 16. 4.to_s(2)中的整数2在Ruby中做了什么?
- 17. (a mod 2 * x) - (a mod x)
- 18. 什么应该“,7-6-5-4-3-2-1,”。split(',')return?
- 19. Ruby中的这是什么,它为什么存在?
- 20. 在Ruby中为什么nil.id返回4?
- 21. 为什么ASP.NET MVC 2和3在工具箱中具有gridview?
- 22. 为什么typeof 3> 2在javascript控制台中返回false?
- 23. 如何在Java中为大数字做mod(10^9 + 7)
- 24. 在csh中,为什么4 - 3 + 1 == 0?
- 25. 为什么4.1%2使用Ruby返回0.0999999999999996但4.2%2 == 0.2
- 26. 为什么Array.new(3,[])与Ruby中的[[],[],[]]不同?
- 27. 为什么在Ruby中使用Object.class ==类?
- 28. 为什么1从模中减去其中计算MOD = 1000000007
- 29. (-6x^2×-7)(2×^ 3 + 3×^ 2-2x-5)如SymPy
- 30. 什么是Swift 2中文档评论的新格式? (XCode 7 beta 3)
为什么它会让你困惑?这是真的。 -7 mod 3 = 2 mod 3 = -1 mod 3等。然而,一个特定的表示必须被选择,而Ruby似乎选择了非负的(与java似乎选择与第一个符号相同的符号操作数)。 – 2012-07-06 08:00:59
@alexandre为什么这么没有礼貌的OP。显然他不知道这个事实,所以他问道。 – reporter 2012-07-06 08:04:18
@AlexandreC。那么,Java告诉我-1。 -7/3 = -2和-1余数。 -2 * 3 = -6 - 1 = -7 – noircc 2012-07-06 08:32:22