再発関係の解決


7

反復関係解く。 この例の本は、を推測してから、であると誤って主張しています。 T(n)=2T(n/2)+n
T(n)=O(n)T(n)cn

T(n)2(cn/2)+ncn+n=O(n) wrong!!

以来、 constant.Theエラーである私たちが証明していないことである正確な誘導仮説の形を。c

上記では、本の内容を正確に引用しています。ここで私の質問は、なぜにを書けないのか、そしてあり、したがってでしょうか?cn+n=dnd=c+1T(n)dnT(n)=O(n)

注意:

  1. 正解はT(n)=O(nlogn).
  2. 私がここで参照している本は、Cormenらによるアルゴリズム入門、86ページ、第3版です。

4
いいえ、できません。あなたの帰納仮説はであり、これは証明しなければならないことです。実際には、繰り返しは解決しません。T(n)cnO(n)
A.Schulz

回答:


7

著者は答えを出します:

エラーは、帰納的仮説の正確な形式、つまり証明していないことです。T(n)cn

確かに、誘導に慣れていない場合(右)は、誘導を明示的または厳密に行わないため、理解するのは困難です。つまり、すべてのに対して1つの定数が必要ですが、この(非)証明は多く(ごとに1つ)を構成します。cnn


長い間、意味を覚えておいてください。T(n)O(n)

cN.n0N.nn0.T(n)cn

または、同等に、

cN.nNT(n)cn

2つ目の形式は、アンカーを知っているので、帰納法に適しています。したがって、すべての上限を提供する1つの定数が必要です。c n

帰納法が何をするかを見てみましょう:

  • 誘導アンカー:のアンカーは明示的には指定されていませんが、定数なので、適切なを見つけます。Tc
  • 帰納法の仮説:任意の固定されたに対して、 すべてのになるようながいくつかあります。cT(k)cnknn
  • 帰納的ステップ:質問に示されているように、なるように構築し。d>cT(n+1)dn

したがって、実際には、すべての新しい定数を作成します。それはの定義にまったく適合しません!そして、悪いことに、それは完全に無意味である:すべての関数は、次のように「有界」することができ、他のあなたと要因を調整することができるかどうかの関数。nOn

帰納証明に関して、は、帰納法の「外側」に結び付けられているクレームの一部でなければなりません(そして、に隠されています)。次に、同じがアンカー、仮説、ステップに現れます。例については、この回答の最後の部分を参照してください。cOc


おかげで、私はすべての新しい定数を持つことは無意味であるということを理解しました n。しかし、「または同等の....」(3番目の文)をどのように書いたかc そのため n0 です 1
Saurabh

2
実際には、 c=1010100!通常は機能します。
JeffE 2012

@SaurabhHota:与えられた n0 そして c 最初のフォームから、 c+maxnn0T(n)/n2番目のフォームの定数として機能します。もう1つの方向は即時です。つまり、定数は(または実際には任意の値)でれます。n0=1
ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.