情報数学 I

第十一回 (2013年 12月20日)

合同算術
Modular Arithmetic

Martin J. Dürst

http://www.sw.it.aoyama.ac.jp/2013/Math1/lecture11.html

AGU

© 2006-13 Martin J. Dürst 青山学院大学

今日の予定

これからの予定

期末試験

試験範囲:
授業・プリントの全ての内容
問題の種類:
ミニテストと同様やそれに似た形式
年度ごとの過去の試験の例: 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
一部のブラウザ (IE7以前) は非推奨
印刷には最新の Opera ブラウザが最適
図と解答例の一部は欠落
解答例は「表示」→「スタイル」→「solutions」で表示可能
注意点:
問題をよく読む (計算、証明、説明などの区別)
概念の定義を自分の言葉でおさえる
計算のところ (n 進法、真理表など) をスピードを意識して練習
各回を超えた横断的な関係を把握
綺麗な字で書く

 

合同算術

(modular arithmetic)

合同関係

合同式の性質

Modulo Operation

See English Wikipedia article on Modulo Operation

 

An Example of Using the Modulo Operation

Output some data items, three items on a line.

A simple way:

int items = 0;
for (i=0; i<length; i++) {
    /* print out */
    items++;
    if (items==3) {
        printf("\n");
        items = 0;
    }
}

Using the modulo operation:

for (i=0; i<length; i++) {
    /* print out */
    if (i%3 == 2)  printf("\n");
}

Properties of the Modulo Operation

Reason: a(mod n) a mod n, and so on

Application of Congruence: Simple Calculation of Remainder

Example: 216 mod 29 = ?

216 = 25 · 25 · 25 · 2

216 = 25 · 25 · 25 · 2 = 32 · 32 · 32 · 2 ≡(mod 29) 3 · 3 · 3 · 2 = 54 ≡(mod 29) 25

合同算術での割算

有理数などの割算: a/b = ca b-1 = c; b b-1 = 1 (逆数、inverse)

モジュラ逆数 (modular multiplicative inverse): bb-1 ≡ 1

n b 0 1 2 3 4 5 6 7
2 - 1
3 - 1 2
4 - 1 - 3
5 - 1 3 2 4
6 - 1 - - - 5
7 - 1 4 5 2 3 6
8 - 1 - 3 - 5 - 7

nb がお互いに素 (coprime、最大公約数が 1) の場合のみ定義

計算には色々方法が存在

a/b (mod n) は a b-1 (mod n) として定義

具体例: 3/4 (mod 7) = 3 · 4-1 (mod 7) = 3 · 2 (mod 7) = 6
(確認: 6 · 4 (mod 7) = 24 (mod 7) = 3)

 

数字和と数字根

数字和 (digit sum): それぞれのけたの数字の合計

数字根 (digit root): 数字和を一桁になるまでに繰り返す

十進法での応用例: 1839275 の数字和は 1+8+3+9+2+7+5 = 35; 35 の数字和は 3+5 = 8; 1839275 の数字根は 8

十六進法の例: A8FB の数字和は A+8+F+B (10+8+15+11) = (44) 2C; 2C の数字和は 2+C (2+12) = (14) E; A3FB の数字根は E

合同式の応用: 九去法

(casting out nines)

宿題

Glossary

modulo operation
剰余演算
operator
演算子
dividend
被除数
divisor
除数
implementation
実装