Mathematics
Examination
Test
Archives
【1】 分木とは右図のように各頂点からつねに本の辺が出ている構造である.
丸は頂点と呼ばれ,線は辺と呼ばれる.また一番上の黒い頂点は根と呼ばれ,下にある灰色の頂点は葉と呼ばれる.
この分木は以下のように機能的に定義される:
・基礎ステップ:ただひとつの頂点は分木である.
・帰納ステップ:つの分木との根と,新たに導入したつの頂点とを辺で結んだものも分木である.
(帰納ステップの様子については下図を参照せよ.)
このように定義される分木の高さは頂点から葉までいくときに通る辺の数の最大値で,以下のように帰納的に定義される:
・基礎ステップ:ただひとつの頂点からなる分木の高さはである.
・帰納ステップ:つの分木との高さをとすると,そのつの分木から,上述の帰納的定義を使って作られる分木の高さはで定義される.ここではとの大きい方を値とする関数である.
このとき,以下の問に答えよ.すべての解答は解答用紙に記入すること.:
(a) 分木の頂点数の帰納的定義を述べよ.
(b) 分木の高さと頂点数に関する以下の不等式を帰納的に証明せよ.解答は以下の枠1)と2)に式や文を記入して証明を完成することで示せ.各枠の中には複数の式や文を記入してよい.
証明:
基礎ステップ:ただひとつの頂点からなる分木に対しては,
1)
となり,問題文の不等式は成り立つ.
帰納ステップ:つの分木とに対して不等式が成り立っていると仮定する.このとき,分木の定義の帰納ステップを使ってとから新たに作られる分木に対しては,
2)
となり,やはり問題文の不等式は成り立つ.
以上より,すべての分木に対して問題文の不等式が成り立つことが示された.(証明終わり)
【2】 有限個の数を順序付けして並べたものを列と呼ぶ.以下では,列に対して,に含まれている数を小さい方から並べた列を作り出す方法について考える.数はすべて整数とする.列は内に,数を順に左から並べて表現する.例えば,は,つの数を含む列であり,番目の数は番目の数は番目の数はである.
具体的な方法は以下のようになる.例えば,列に対してこの方法を使うと,列が得られる.
❲列から列を作り出す方法❳
・まず,列の番目の数を取り出して,その数のみからなる列を作る.
・次に,以下の操作を列中の数がなくなるまで繰り返す.
列の番目の数を取り出して,列へ移す.このとき,列中で数が小さい方から並ぶようになる場所を見つけて,から取り出した数を入れる.具体的には,列の番目の数,番目の数,と順に大小比較を繰り返して,から取り出した数よりも,大きい数が見つかった場合は,その直前に挿入し,見つからなかった場合は,の最後に付け加える.
(a) 上記の方法について述べた次の文章について,内を適当な数字または記号で埋めて,答えを解答用紙に記せ.
列を考える.まず,列の番目の数を取り出して,列を作るととなる.また,列からは,を取り出すので,となる.
次に,列から番目の数であるを取り出して,列へ移す.このとき,と列の番目の数を大小比較する.はより小さいので,の直前に挿入する.つまりとなる.からはを取り出したので,となる,を移すときに必要となる大小比較の回数は回となる.
続いて,の番目の数を取り出して,列へ移す.まず,をの番目の数と大小比較して,次にの番目の数と比較する.はより小さいので,結局となる.また,からはを取り出したので,となる.を移すときに必要となる大小比較の回数は回となる.
最後にもう一度の番目の数を取り出して,列に移す.の要素の番目から順に大小比較をしていくと,最終的に列はとなる.には数が残っていないため,終了となる.の最後の数をに移す時に必要となる大小比較の回数は回となる.
(b) 列に対して上記の方法を使って列を作ると,大小比較は合計何回行われることになるか.
(c) 列は,からまでの個の数が,大きい方から順に並べられた列である.上記の方法を使って列を作ると,大小比較は合計何回行われることになるか.を使って示せ.また,なぜそのような結果が得られたかを説明せよ.