質問

サイズnの配列Aを持っているとします。最初のインデックスとして1と最後のインデックスとしてnがあります。それは値xを含み、xがk回、aは1≦k <= n

である。

SOのような検索アルゴリズムがある場合:

while true:
  i := random(1, n)
  if A[i] == x
    break
.

ランダム(A、B)は、AからBへの数値を均一に選択します。

これからXを見つけてプログラムを終了させる機会は、各反復でK / Nです。しかし、私が知っておくべきことは、反復回数またはより具体的にはアレイが上記のように配列Aを与えられた回数の数の期待値となるでしょう。

役に立ちましたか?

解決

$ n $ gemetric r.vになりましょう。これは、要素を検索するためにアレイがアクセスされた回数、 $ a [x] $ を見つけるまで、それを見つけるまで。 $ \ mathbb {e} [n] $ を知りたいです。

whidループの反復をIID Bernoulli Trialsのシーケンスとして表示することができます。障害の数学コンテナ "> $ Q= 1 - P $ 。質問を考えると、要素を見つけたい「成功」を得るために必要な試行を知りたいのですが、 $ a [x] $ によってwhileループが終了します。 。

$ \ pr \ {n= k \}= q ^ {k-1} p $ 、その $ \ mathbb {e} [n]=sum \ limits_ {k= 1} ^ \ infty k \:q ^ {k-1} p $

このように、 $ \ mathbb {e} [n]=dfrac 1p $ ここで、 $ p=dfrac kn $ so $ \ mathbb {e} [n]=dfrac nk $

SO平均で、 $ \ dfrac nk $ アクセス前に $ a [x] $

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top