情報数学 I
第十二回: 合同算術 (2013年
1月11日)
Martin J. Dürst
http://www.sw.it.aoyama.ac.jp/2012/Math1/lecture12.html
© 2006-12 Martin
J. Dürst 青山学院大学
今日の予定
- これからの予定
- 前回の復習
- 合同算術
- (証明の方法)
- 授業改善のための学生アンケート
これからの予定
- 1月17日 (木曜日2限、補講):
13回目の授業
- 1月18日 (金): 14回目の授業
- 1月25日 (金) 11:10-12:35: 期末試験
前回の復習
- 記号論理の種類: 命題論理、述語論理など
- 述語は命題と違って、引数を取る
- 述語では命題より一般的な記述、推論が可能
- 全称限量子 (∀) と存在限量子 (∃)
量記号の復習
量記号の場合の注意点:
- 全集合の把握
- 書き方 (コロン、括弧など)
- 使用する述語の定義
- 自由変数の存在
量記号の性質の具体例
- ∀x: P(x) ∧ ∀x: R(x) =
∀x: (P(x) ∧ R(x))
例:
全ての学生において、30歳以下である、かつ全ての学生において、理工学部在籍である
=
全ての学生において、30歳以下かつ理工学部在籍である
- ∀x: P(x) ∨ ∀x: R(x) →
∀x: (P(x) ∨ R(x))
左から右への例:
全ての学生において、30歳以上である、又は全ての学生において、理工学部在籍である
→
全ての学生において、30歳以上又は理工学部在籍である
右から左への反例:
全ての学生において、男性である又は女性である
しかし、全ての学生が男性である、又は全ての学生が女性であるが偽
- ∃x: P(x) ∨ ∃x: R(x) =
∃x: (P(x) ∨ R(x))
例:
ある学生において、東京都出身である、又はある学生において神奈川県出身である
=
ある学生において、東京都出身である又は神奈川県出身である
- ∃x: P(x) ∧ ∃x: R(x) ←
∃x: (P(x) ∧ R(x))
右から左への例:
ある学生において、広島県出身であるかつ女性である
→
ある学生において、広島県出身である、かつある学生において、女性である
左から右へな反例:
ある学生において、北海道出身であるかつある学生において女性である
ある学生において北海道出身であるかつ女性であるとは限らない
合同算術
(modular arithmetic)
合同関係
- 各法 n は ℤ において合同関係を作る
- 合同関係は同値関係
- 同値類は合同類 (congruence class) 又は剰余類 (residue class)
と呼ぶ
- 一般に合同類の代表 k は 0 ≦ k <
n のようにとる
- 代表は剰余演算の結果 (注:
負の数の場合に、定義による)
合同式の性質
- a ≡ b ∧ c ≡ d ⇒
a + c ≡ b + d (mod
n)
- a ≡ b ∧ c ≡ d ⇒
a - c ≡ b - d (mod
n)
- a ≡ b ∧ c ≡ d ⇒
ac ≡ bd (mod
n)
- a ≡ b ⇒ am ≡
bm (mod n)
- a ≡ b ∧ c ≡ d
⇏ a / c ≡ b /
d (mod n)
Modulo Operation
- Operator:
%
(C, Ruby and many other programming
languages)、mod (Mathematics)
- a ≡(mod n) b ⇔
a mod n = b mod n
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
- (a + c) mod n = (a mod
n + c mod n) mod n
- (a - c) mod n = (a mod
n - c mod n) mod n
- (a · c) mod n = (a mod
n · c mod n) mod n
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
数字和と数字根
数字和 (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)
- n 進法の数字根は n-1
で割ったときの剰余と同じ
- 元の演算が合ったら、数字根での演算は当然合う
- 数字根での演算では演算の間違えの一部が確認可能
(演算の正確さの確認は不可能)
- 応用例:
次の二つの計算のうち、一つだけ正しいが、どちらでしょうか:
2485938 · 4962483 = 12336425064054
2354987 · 2498472 = 5883469079864
授業改善のための学生アンケート
お願い:
自由記述をできるだけ使って、具体的に書いてください
(例:
「英語をやめてほしい」のではなく、「日本語の部分で出てくる用語も
Glossary に含めてほしい」など)
Glossary
- modulo operation
- 剰余演算
- operator
- 演算子