我從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. 爲什麼Ruby在計算mod時添加精度/數字?
- 4. 爲什麼「echo'2'。print(2)+ 3」print 521?
- 5. 爲什麼15.5 mod 5 = 0?
- 6. 爲什麼minus比mod慢?
- 7. 爲什麼2和3在VBA中等於2?
- 8. 3/2和-3/2有什麼區別?
- 9. 爲什麼(x&3)與(x mod 4)相同?
- 10. 爲什麼在使用Ruby
- 11. 有什麼語法MOD在java中
- 12. Ruby中`Fixnum`和`3`有什麼不同?
- 13. 爲什麼(2/3)在rails中評估爲0?
- 14. 爲什麼2 /// 2在Javascript中是2?
- 15. 爲什麼我們不使用2-3或2-3-4-5樹?
- 16. 爲什麼在Ruby on Rails 3中返回Nil?
- 17. 爲什麼在Rails 3 Gemfile中引用了sqlite3和sqlite3-ruby gems?
- 18. 爲什麼-2?爲什麼不是-3或-1?
- 19. C#和Java:3/2 * 3.2 = 3.2,爲什麼?
- 20. 爲什麼Java以3/2增長ArrayList?
- 21. 爲什麼UINT_MAX + 3總是等於2?
- 22. 爲什麼NUM = 1 - - 「2」 等於3個
- 23. 爲什麼'7'+ 4給出'74',而'7' - 4在JavaScript中給出3?
- 24. 在ActionController :: Base <mod中的<運算符是什麼意思在Ruby中?
- 25. 4.to_s(2)中的整數2在Ruby中做了什麼?
- 26. /ell/==='Hello'在Ruby中爲true。爲什麼?
- 27. (a mod 2 * x) - (a mod x)
- 28. 什麼應該「,7-6-5-4-3-2-1,」。split(',')return?
- 29. Ruby中的這是什麼,它爲什麼存在?
- 30. 爲什麼將[2..3..10]被解釋爲[2; 5; 8]
爲什麼它會讓你困惑?這是真的。 -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