科目Aの試験でよく出るmod
pを2以上の整数とする。 任意の整数nに対して、
n = kp + m (0≦m<p)
を満たす整数kとmが一意に存在する。このmをnのpによる剰余といい、n mod p で表す。 (ー 10000) mod 32768に等しくなるものはどれか。
ア ー (10000 mod 32768)
イ (ー22768) mod 32768
ウ 10000 mod 32768
工 22768 mod 32768
正解:エ
n = kp + m (0≦m<p)
この式のnを被除数、pを除数、kを商、mを剰余(余り)という。 式を変形すると、
m = – kp + n
になり、 剰余mを求める式となる。
つまり、m = n mod pは、m=ーkp + nで求めることができる。
問題のm=(ー10000) mod 32768は、m=ー(k)×32768+(ー10000)となる。
mは剰余(余り) なので、0≦m<32768の範囲にあり、これを満たすkはー1である。
m=ー(ー1) x 32768+ (ー10000) = 22768
同様にして、解答群のアからエも計算していこう。 イ以外は、被除数も除数も正数で、被除数が除数よりも小さいので、単純に被除数が剰余となる。
ア ー (10000 mod 32768) = ー (10000) = ー10000
ウ 10000 mod 32768=10000
エ 22768 mod 32768=22768
これで工が正解だとわかった。イは被除数が負数である。
イ m=ー(k)×32768+ (ー22768)=ー32768kー22768
k=ー1のとき、m=10000
(参考)うかる! 基本情報技術者 [科目B・アルゴリズム編] 2024年版 福嶋宏訓(著)日本経済新聞出版


コメント