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
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