6

私はこれにかなり不満です。 CLRS第3版でマスター定理はいつ実際に適用できますか?

、95ページ(章4.5)、それは違い

f(n)/n^(log_b(a)) = (n lg n)/n^1 = lg n

があるので

T(n) = 2T(n/2) + n lg n

などの再発がマスター定理では解決できないことに言及します多項式ではありません。

しかし、私はthisのようなページを見ることができます。ページの下部には、まったく同じ再発が記述されており、「拡張ケース2」にも入るのでマスター定理で解くことができます違いは非多項式です。 のログ係数を1つ増やしてn lg^2 nになります。

その後、私はthis場所の例では(e)のようなページに渡って来るが(再発がT(n) = 4T(n/2) + n^2 lg nある)拡張ケース2の明確なアプリケーションのように思えるが、その後、解決策はn^2 log^2 nではなく、むしろn^2 log n!間違っているのですか、または間違っていますか?

矛盾を明確にして、マスター定理を使用できるときとできないときを正確に分かりやすくできますか?いつ多項式差分チェックが重要ですか?それはいつですか?拡張ケース2は使用可能か、それとも実際に何か違反していますか?

EDIT:

私が直接、2枚目の用紙から再発(e)を解決しようと、私が手:

T(n) = n^2 lg^2(n)/2 + n^2 lg(n)/2

はこの大きなないシータn^2 lg^2 nですか?

+0

本書のマスター定理のケース2は、他の場所で遭遇する一般化された形式(例を含む)とは異なります。一般化されたフォームはどこから来たのですか?本書のエクササイズ4.6-2では、実際に自分で証明するのはかなり簡単です。 :-) –

+0

@MichaelFoukarakis多項式の差異のルールは、ケース1とケース3にのみ適用されます。 –

+0

多項式の差「規則」は、多項式の場合よりも厳密な文です。 3つすべての場合に適用されます。ケース#2では、単にリラックスすることが許されるだけである。 –

答えて

3

本はCase 3を使用して解決することはできないと述べている:

適切なフォームを持っているように見えるにもかかわらず:...あなたは間違っているケース3は


を適用すべきであると思うかもしれません

しかし、この定理は、マスター定理、ケース2を使用して解くことができます。

T(n) = 2T(n/2) + nlgn: 

は、我々は定義:

a = 2, b = 2, f(n) = nlgn 

Master theorem case 2を使用する:

c = log_2(2) = 1 
k = 1 

そしてf(n)Theta(nlogn)に確かです。

ので、マスター定理ケース2へのすべての条件が適用され、私たちは推測することができます。

T(n)Theta(n^c * log(n)^(k+1)) = Theta(n*log(n)^2)


長い話に短いです

、マスターの定理は3例があります。それぞれのケースには適用する前提条件があります。ケース3には、コンバージェンスが必要なため、より複雑な前提条件があります。
ケース3の前提条件はこの式には適用されないため、ケース3は使用できません。ケース2の前提条件が適用され、使用できます。

+1

ケース3は当てはまりませんが、数行前にはマスター定理全体には当てはまりません(「マスター方法は再発には適用されません...」)、そしてまもなくその後 "あなたは誤ってケース3を適用するべきだと思うかもしれない"と言う。 96ページでは、再発が「ケース2とケース3の間の隙間に入る」と主張しています。本は間違っていますか? –

+0

このことについて:次のステートメントに同意しますか?CLRSが間違っています。マスター定理のケース2は、「T(n)= 2T(n/2)+ n lg n」に適​​用され、大きなTheta 'n lg^2 n (2)+ 4(n/2)+ n^2は、ケース2であるため、大きなシータ「n^2 lg^2 n」であり、多項式の差異の概念は、ケース1と3を扱うときにのみ適用されますか? –

+0

(1)CLRSはこれがケース2ではないと判断しません。実際には、この問題の解決策としてケース2の証明を指しています。私は本のフレーズがやや誤解を招いていることに同意する。 (2)ケース3のみが「多項式差」を必要とし、ケース1とケース2はそうではない。 – amit

関連する問題