情報数学 I

第十四回: 残り・復習(2013年1月18日)

Martin J. Dürst

http://www.sw.it.aoyama.ac.jp/2012/Math1/lecture14.html

AGU

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

今日の予定

これからの予定

1月25日(金曜日2限、11:10-12:35): 期末試験

前回の演習問題

削除

 

Proving Associativity of Addition
from Peano Axioms

The axioms of addition:

  1. a + 1 = s(a)
  2. If a and b are natural numbers, then a + s(b) = s(a + b)

The law of associativity for addition: (c + d) + e = c + (d + e)

Basis step: For e = 1, (c + d) + 1 = s(c + d) = c + s(d) = c + (d + 1)

Inductive step:

For e = k, we assume (c + d) + k = c + (d + k)

We have to prove associativity for e = k+1, i.e., (c + d) + (k+1) = c + (d + (k+1))

(c + d) + (k+1) = (c + d) + s(k) = s((c + d) + k) = s(c + (d + k)) = c + s(d + k) = c + ((d + k) + 1) = c + (d + (k+1))
Q.E.D.

 

数学的帰納法の応用例

次の式を考えよう:

1 = 1

3 + 5 = 8

7 + 9 + 11 = 27

13 + 15 + 17 + 19 = 64

21 + 23 + 25 + 27 + 29 = 125

この式に秘めている法則を仮説として明確にし、数学的帰納法で証明して下さい。

 

仮説

右辺は明らかに n3

左辺は全部奇数で、順番通り、奇数の数は n

仮説は次の通り: 最小の 1個の奇数の合計は 13 で、その次々の n個の奇数の合計が n3

証明は二段階で行い、いずれも数学的帰納法を使う

一段階目の帰納法

ある合計の最小の奇数が n2-n+1 であることを帰納法で証明

基底: n=1 の場合、 n2-n+1 = 1 なので明らか

帰納:

ある k≥1 の場合、合計の最小の奇数は k2-k+1 であることを仮定し、m=k+1 の場合、合計の最小の奇数が m2-m+1 であることを証明する必要がある

奇数と奇数の差は常に 2 で、k 行目には k個の奇数がある

k 行の最小の奇数から最大の奇数までの差が 2(k-1) で、k 行目の最小の奇数からm 行目の最小の奇数の差が 2k

よって、k2-k+1 + 2k = m2-m+1 を証明できればよい

m2-m+1 = (k+1)2-(k+1)+1 = k2+2k+1 - k-1 + 1 = k2-k+1+ 2k で証明済み

 

二段階目の帰納法

n2-n+1 という奇数を始め n個の奇数の合計は n3 であることを証明

基底: n=1 の場合奇数の数が 1個なので、n2-n+1 = n3n=1 の場合に明らか

帰納:

ある k≥1 の場合、k2-k+1 で始まる k 個の奇数の合計が k3 であることを仮定し、m=k+1 の場合、m2-m+1 で始まる m 個の奇数の合計が m3 であることを証明

k 行目の合計と m 行目の合計の差は、最初の k 個のそれぞれの差と最後の m 行目にしかない奇数からなる

m 行目の最後の奇数は m+1 行目の最初の奇数 -2 で、すなわち (m+1)2-(m+1)+1 - 2 である

最初の k 個のそれぞれの差は k回行の最初の奇数の差、すなわち k((m2-m+1)-(k2-k+1)) である

よって、差の合計は k((m2-m+1)-(k2-k+1)) + (m+1)2-(m+1)+1 - 2 である

これが m3 - k3 であることが証明できればよい

k((m2-m+1)-(k2-k+1)) + (m+1)2-(m+1)+1 - 2 =

k(((k+1)2-(k+1)+1)-(k2-k+1)) + ((k+1)+1)2-((k+1)+1)+1 - 2 =

k((k2+2k+1-k)-k2+k-1) + (k+2)2-k-3 = 2k2 + k2+4k+4-k-3 = 3k2 + 3k + 1 (1)

m3 - k3 = (k+1)3 - k3 = k3+3k2+3k+1 - k3 = 3k2+3k+1 (2)

(1) と (2) が同じなので、k行目とm行目の左辺の差と右辺の差が同じなので、証明が成立

 

構造的帰納法の例

証明

根だけの非常に小さい木から少しずつ伸ばせば、どんな形の二分木でも作れる。伸ばし方の一歩として、ある葉の代わり二つの新しい葉が伸びる内部節にする方法を取る。

基底: 根だけの木の場合に、節の数が 1 で、葉の数も 1 なので n = 2l-1 が明らか。

帰納: 伸びる前の節の数を n, 葉の数を l、一歩伸びる後の節の数を n', 葉の数を l' にすると、次のことを証明しないといけない: n = 2l-1 → n' = 2l'-1

一歩伸びると節の数が n から n+2 に増え、葉の数が2個増えるが一個減るので、n'=n+2 かつ l'=l+2-1=l+1 が分かる。

以上の n = 2l-1 (1), n'=n+2 (2), l'=l+2-1=l+1 (3) の三つの式から n' を l' で表す式を求める:

(2) に (1) を適用: n' = 2l-1+2 = 2l+1 (4)

(3) の書き換え: l'-1 = l (5)

(4) に (5) を適用: n' = 2(l'-1) + 1 = 2l'-2+1 = 2l'-1

よって、帰納のステップが証明できましたので、証明が完成。

 

展望

情報数学 II: 情報理論、グラフ理論など (二年前期)

データ構造とアルゴリズム (二年後期)

言語理論とコンパイラ (三年)

復習

質問、疑問などなんでも結構

Glossary

natural number
自然数