如果我的模塊化部門是正確的; 1/5 mod 11 = 9
。有人能證實這一點嗎?java模塊化部門健全性檢查
但是,在Java中; 1/5 % 11 = 0;
我不確定這裏發生了什麼,它是我的語法,是否需要將它括起來?
我現在越來越困惑:)
有人可以建議嗎?
由於
如果我的模塊化部門是正確的; 1/5 mod 11 = 9
。有人能證實這一點嗎?java模塊化部門健全性檢查
但是,在Java中; 1/5 % 11 = 0;
我不確定這裏發生了什麼,它是我的語法,是否需要將它括起來?
我現在越來越困惑:)
有人可以建議嗎?
由於
即相同(1/5)MOD 11.
(或備選地相同爲1 /(5 MOD 11),其仍然是1/5 == 0 [從左至右它實際上將是(1/5)模11雖然])
5分之1= 0(對於整數)
0模11 = 0
http://www.difranco.net/cop2551/java_op-prec.htm表示*,/和%有th相同的優先順序,但是在表達式中/優先於%。所以上面的Java結果在JLS中是正確的。
您引用的鏈接絲毫不支持您的答案,而您的答案體現了矛盾之處。要麼它們具有相同的優先級,要麼優先於另一個。事實上,優先級相同的運算符從左到右進行評估。這些都不足以解釋OP的問題。 – EJP
這是因爲運算符的優先級。
Java確實通過它簡化了快遞。它做了一些操作,然後在下一個過程中做了一些其他操作。 「最高」的操作員首先完成。例如,乘法在加法之前。運營商()
是第一次通過,並讓您覆蓋正常順序的事情完成。
參見以下圖表:enter link description here
%
是在相同的基團作爲*
和/
。他們完成從左到右。
所以,你要(1/5) % 11
但你有這將在浮點運算來完成另外一個問題,所以你會得到一個近似而不是精確的正確答案。
您需要使用BigInteger
類而不是內置原語。
1/5 mod 11 = 9.有人可以證實嗎?
(9 * 5)%11 = 45%11 = 1.所以,9是'mod 11'域的模的乘法倒數5。
問題是:Java只有整數,沒有模運算。在Java中,%
只是一個運算符,如*
。
從http://en.wikipedia.org/wiki/Modular_arithmetic
模運算的概念是相關到了在餘數的。
所以,mod 11
和% 11
是相關但不是相同的東西!
你是對的。我以錯誤的方式接近它。爲了得到我的答案,我剛剛實現並測試了這個:如果(i * y%mod == 1){ (012)一世); } } 感謝您的幫助 – Tony
謝謝,我明白爲什麼會這樣。我將不得不做更多的研究。謝謝 – Tony