2014-10-30 118 views
1

我將如何去了解這個n Java?使用Java來計算11^-1 mod 26

double power = (Math.pow(11,-1)) % 26; 
System.out.println(power); 

剛回來0.09090909090909091。根據wolfram

謝謝!

+5

你期待什麼輸出? – Eran 2014-10-30 15:32:35

+2

有什麼問題? – 2014-10-30 15:33:43

+2

Btw,11^-1 = 1/11〜0.09。這種模26應該顯然仍然導致相同的值。 – 2014-10-30 15:36:22

回答

7

Java在技術上是正確的,11 mod 26的倒數是(近似)0.09090909090909,因爲0.09090909090909 * 11約爲1,無論是否爲mod 26。

但是,你試圖找到的是一個具有相同屬性的整數,19,因爲19 * 11 = 1 mod 26,你不能用相同的方法來做到這一點。

幸運的是,標準庫中有你覆蓋:如預期

import java.math.BigInteger; 

class Test { 
    public static void main(String[] args) { 
     System.out.println(
      new BigInteger("11").modInverse(new BigInteger("26"))); 
    } 
} 
+1

+1瞭解問題,+1給予此解決方案! (該死,爲什麼我不能兩次投票?) – Barranka 2014-10-30 15:39:42

+1

+1我同意巴蘭卡的觀點,爲了解這個問題,你應該得到雙倍的讚賞! – 2014-10-30 15:40:35

+0

我曾經是CS TA:P – 2014-10-30 15:41:17

1

Wolframalfa不解釋你的語法。而不是寫的

11^-1 mod 26 

嘗試

mod(11^-1, 26) 

這將返回same result爲您的Java代碼。