再帰


8

注:これは、5ページの反復に関するJeffEのアルゴリズムのメモにあります。

(1)。したがって、基本ケースなしで、繰り返しを定義します。今、私はほとんどの再発について、漸近的な境界を探しているので、基本的なケースは問題にならないことを理解しています。しかし、この場合、基本ケースをどこに定義できるかさえわかりません。私達は私達がちょうど定義してください任意の整数から始まる平方根を取っておくよう、私たちはヒットに保証している任意の数が存在し、T(n)を=のためのn <Bいくつかの実数のため、、bがTn=an<babT(n)=nT(n)+nT(n)=an<bab

(2)。7ページ目で、エリクソンは、再帰ツリーLの層の数がn ^ {{2} ^ {-L}} = 2を満たすことを理解しますn2L=2。これはどこから来たのですか?何も思いつきません。ツリーの葉の数の合計は(n)(n)=nになるはずですが、そこからどこに行くべきかわかりません。

どんな助けでもありがたいです!

私が見ているメモ:http : //jeffe.cs.illinois.edu/teaching/algorithms/notes/99-recurrences.pdf

回答:


7

あなたは本当に3番目の質問をする必要があります:が完全な正方形でない場合はどうなりますか?この質問への答えは、実際の反復にはではなくまたはであるということですが、分析では、「再帰的な」正方形である入力のみを考慮します。T nTT(n)TT(n)T(n)

最初の質問に関しては、複数の基本ケースがある場合があります。たとえば、すべての、おそらくです。最終的にこの基本ケースにヒットすることが保証されます。この場合、ほとんどの場合と同様に、基本ケースの正確な形式は大きなシータの漸近性には影響しません(ただし、隠れた定数には影響します)。N 100T(n)=1n100

最後に、2番目の質問に関して、基本ケースでに対してを指定するとします。再帰ツリー(再帰のいくつかの機能の特定の解釈)は、次の形式です。N CT(n)nC

  • ルートは、サイズ 1つのインスタンスです。n
  • ルートには、サイズインスタンスである子があります。nn
  • 深さ1の各ノードには、サイズインスタンスである子があります。n=n1/4n=n1/8
  • より一般的には、深さノードは、サイズインスタンスです。これは、ケース()をチェックしてを計算することにより、帰納法によって証明できます。。N 1 / 2 Dを D = 0 N 1 / 2 D = N dn1/2dd=0n1/2d=nn1/2d=n1/2d+1

再帰は、インスタンスのサイズが最大でになると終了します。これは、ます。これが発生した時点で、(仮定)がため、。対数を取ると、なので、、を意味し。と結論付けることができ。これは、ツリー内のレイヤーの数です。ジェフは使用します。これは、彼が特定の式を取得する方法です。N 1 / 2 DC N 1 / 2 D - 1 > CCn1/2dCn1/2d1>Cn>C 1C<n1/2dClog n12logC<logn2d<logC2D=ΘログN、DログログNC=2logn2d=Θ(1)2d=Θ(logn)dloglognC=2


4

最初の質問に答えます。基本ケースを達成するために上限と下限を使用する代わりに、1つのオプションはの形式を想定することです。n

たとえば、mergesort再帰を見てみましょう。

T(n)=2cT(n2)+cn

明らかに、ほとんどのは整数に均等に分割されません。次に、が次の形式であると仮定することはかなり一般的です: nn

n=2kkN

これは、すべてのが正のべき乗であることを意味します。したがって、基本ケースを常に解決します。あるいは、が次の形式であると仮定して、ではなく基本ケース作成することもできます n21c1n

n=c2kkN,cN+

これを繰り返しに適用できます。

T(n)=nT(n)+n

が次の形式であると仮定します 次に、基本ケースは常に定数解決され。n

n=c2kkN,cN+
c

この仮定の下でそれを証明できれば、この形式を持たない値の証明をことができます。一つのアプローチは、次の最高(または最低)によって、それを拘束しようとすることによるその行いそのフォームを持っています。nn

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.