情報数学 I

第十三回: 証明の方法

Martin J. Dürst

http://www.sw.it.aoyama.ac.jp/2008/Math1/lecture13.html

AGU

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

今日の予定

期末試験

日付:
2007年 1月22日 (金曜日)
時間:
11:10-12:35 (85分間)
試験範囲:
授業・プリントの全ての内容
問題の種類:
ミニテストと同様やそれに似た形式
過去の試験の例: 2005年度, 2006年度, 2007年度2008年度 (解答例一部欠落)
注意点:
問題をよく読む (計算、証明、説明などの区別)
概念の定義を自分の言葉でおさえる
計算のところ (n 進法、真理表など) をスピードを意識して練習
綺麗な字で書く

前回の演習問題

次の証明のどこがおかしいのかを見つけてください。

全てのお互いに平行ではない平面上の直線 n 本は全て一つの点を共有する。

証明:

  1. 基底: n=2 の場合に明らかである。
  2. 帰納: n+1 本の場合、最初の n 本にも、最後の n 本にも共通点があるので全ての n+1 本に共通点がある。

復習

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

数学的帰納法の応用例

次の式を考えよう:

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: 情報理論、グラフ理論など

データ構造とアルゴリズム

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