我從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