fc2ブログ

2008-8 第1問 (2)

(a)
m = 1のとき、C = 1, Cmax = 1 は明らか

m = 2のとき、
v = p2 ならば比較は1回
そうでなければ比較は2回
よって、
C = (1 + 2 * 3) / 22 = 7/4
Cmax = 2

m = 3のとき、
比較が1回の場合が1通り
比較が2回の場合が2通り
比較が3回の場合が22通り + 探索が失敗する場合
よって、
C = (1 + 2 * 2 + 3 * (22 + 1)) / 23 = 5/2
Cmax = 3

m = 4のとき、
比較が1回の場合が1通り
比較が2回の場合が2通り
比較が3回の場合が22通り
比較が4回の場合が23通り + 探索が失敗する場合
よって、
C = (1 + 2 * 2 + 3 * 22 + 4 * (23 + 1)) / 24 = 53/16
Cmax = 4


(b)
比較回数iで探索が成功する場合が2i-1通り存在し、また探索が失敗する場合の比較回数はm回なので、
C = ( Σk∈[1, m] ( k * 2k-1 ) + m ) / 2m

ここで、S = Σk∈[1, m] ( k * 2k-1 ) とすると、
S = 1 * 1 + 2 * 2 + 3 * 22 + ・・・ + m * 2m-1
2S =           1 * 2 + 2 * 22 + ・・・ + (m-1) * 2m-1 + m * 2m

よって、
-S = 1 + 2 + 22 + ・・・ + 2m-1 - m * 2m
S = (m - 1) * 2m + 1

以上より、
C = ((m - 1) * 2m + 1 + m) / 2m
 = m - 1 + (m + 1) / 2m
Cmax = m

2008-8 第1問 (1)

(a)
v = kj のとき比較回数は j回
探索失敗の場合、比較回数は n回

よって、
C = Σj∈[1,n] ( j / 2n ) + n / 2 = (3n + 1) / 4
Cmax = n

(b)
C = Σj∈[1,n] ( j / 2j ) + n / 2n

まず、C = 1 + Σj∈[1,n-1] (1 / 2n) を示す。

n = 1のとき、C = 1

Σj∈[1,k] ( j / 2j ) + k / 2k = 1 + Σj∈[1,k-1] (1 / 2k) とすると、
Σj∈[1,k+1] ( j / 2j ) + (k + 1) / 2k+1
= Σj∈[1,k] ( j / 2j ) + (k + 1) / 2k
= 1 + Σj∈[1,k-1] (1 / 2k) + 1 / 2k
= 1 + Σj∈[1,k] (1 / 2k)

よって、数学的帰納法より、
C = 1 + Σj∈[1,n-1] (1 / 2n)

Σj∈[1,n-1] (1 / 2n) < 1 なので、C < 2
プロフィール

phenan

Author:phenan
東大創造情報学専攻を受験予定の学生

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR