[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/24 18:23 / Filesize : 383 KB / Number-of Response : 978
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★★ Java の宿題ここで答えます Part 60 ★★



351 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 02:25:54 ]
>>348
public class A {
public static void main(String[] args) {
long n = 325;
long e = 30;
long m = 23;
System.out.println(n + "^" + e + "(mod " + m + ") = " + java.math.BigInteger.valueOf(n).modPow(java.math.BigInteger.valueOf(e), java.math.BigInteger.valueOf(m)));
/*System.out.println(n + "^" + e + "(mod " + m + ") = " + modPow(n, e, m));*/
}
/*private static long modPow(long n, long e, long m) {
long p = n % m;
long q = 1;
while (e > 0) {
if (e % 2 != 0) {
q *= p;
q %= m;
}
e /= 2;
p *= p;
p %= m;
}
return q;
}*/
}
例示された325の冪乗計算の途中がおかしいような。結果は合っているけど。
325^a(mod m) = ((325^(a/2)(mod m))^2)(mod m)を利用。例えば、23を法として、325≡3、325^2≡3*3≡9、325^4≡9*9≡12、...
ビットが立ってる桁も順番に掛け算するたびにmodを求めている。






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<383KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef