JJ プログラム仙人修行日誌

2024/04/20 からは、プログラム仙人修行の日誌を書いてます。

 従業員番号と氏名の対が n 件格納されている表に線形探索法を用いて,与えら
れた従業員番号から氏名を検索する。この処理における平均比較回数を求める式
はどれか。ここで,検索する従業員番号はランダムに出現し,探索は常に表の先頭
から行う。また,与えられた従業員番号がこの表に存在しない確率を a とする。


 ア n + 1  na
   ─── + ──
    2    2

 イ (n + 1)(1 - a)
   ────────
       2

 ウ (n + 1)(1 - a)   n
   ──────── + ─
       2      2

 エ (n + 1)(1 - a)
   ──────── + na
       2

■キーワード■ 線形探索法

■解答■
  ソフトウェア開発技術者午前平成20年秋問12

 エ (n + 1)(1 - a)
   ──────── + na
       2

> 解き方が全く分かりません...。ボケたか?

 宿題メールは,苦手なところを見つけるというのが目的の一つです。
解説で確認しておいてください。

300件あって,その中に従業員番号がない確率を,1/5 として,100回調べると

100回のうち,4/5は存在し,1/5は存在しないことになります。
頭から順に調べる場合,必ずあるとすると,平均比較回数は,半分です。

見つかるとき, 80回。比較回数は,300/2 = 150 比較。
見つからないときは,20回。比較回数は,300 比較(見つからないときは全てみるから)

100回調べると,
150比較が,80回
300比較が,20回
よって,平均は,
150*80 + 300*20 / 100 比較
= 150*(1 - 20/100) + 300*(20/100)

n/2*(1-a) * na

これと似た式は,エ。
違いは,n/2 が,(n+1)/2 となっていることです。頭から順に比較するときに,
見つかる位置は,正確には,n/2 でなくて,(n+1)/2 ということでしょう。

  1. 1 にはほとんど意味はありません。1万件データがあったときに,必ずあるとき

の比較回数が,平均,5000 か5000.5 の違いです。

                                                                                                                                              • -