多項式時間の複雑さがあるアルゴリズムを仮定すると、T(n)のいずれの項も負の係数を持つことは可能ですか?直感的には、前の手順で取った既存の時間を短縮するアルゴリズムはないので、答えは明白な「いいえ」のように見えますが、私は確信しています。多項式時間複雑度の負の係数
答えて
多項式の複雑さについて言及するとき、最も高い次数の係数だけがカウントされます。
しかし、あなたはT(n)= n * n - n = n *(n-1)を持つことができると思います。 n-1は、最初または最後の繰り返しでやっていないことを表します。
とにかく、複雑さはまだn * nです。
アルゴリズムの時間の複雑さは負の係数を持つ可能性がありますが、アルゴリズム全体ではいくらかの正の時間の複雑さがあります。ウィキペディアのexampleとして、f(x)=6x^4-2x^3+5
の機能を利用してください。 X0およびMのいくつかの適切な選択のために、すべてのx> X0ため
を次のように彼らは
O(x^4)
の複雑さのために解決します。これを証明するために、聞かせX0 = 1、M = 13次に、ためすべてのx> X0:ので、あっても、ある
元の方程式の負の係数では、最も高い次数の項に基づいていくつかの正の全体的な時間複雑さが依然として存在する。
下限はどうですか?定義では、我々は次のようdefinitionを使用して、任意の関数の下限を見つけることができます:n
は無限大に進むにつれ、その後、いくつかの定数k
といくつかのn0
のために、我々は次のようにすべてのn>n0
のために保持していることがあります。
上記の関数f(x)もオメガ(x^4)であるとします。^2X -
K < =(6X^4:2X^3 + 5> = KX^4
kについて解く -
6X^4:これがあることを意味します3 + 5)/(X^4)
K < = 6 - 2X^-1 + 5X^-4
(5/x^4)のように、(2/x)という用語は0に近づくため、大きなx0 = 30に対してはk=2
を選択できます。 - 2X^3 + 5> = 2X^x>は30
の4x^4 4 - > = 0×2^3 + 5
6X^4:これが成り立つことを示すために、我々はことを示しています
したがってf(x)
はオメガ(x^4)であり、f(x)
がシータ(x^4)であるようなタイトな境界が見つかったと結論づけることもできます。
係数が負であっても、これはなぜ機能しますか? Big OとBig Omega表記の両方で、のある点の後にの関数が別の関数を支配するような境界を探しています。つまり、as these graphs illustrateです:
http://cs.anu.edu.au/~Alistair.Rendell/Teaching/apac_comp3600/module1/images/Introduction_BigOmegaGraph.png - 私たちの元f(x)が考えるビッグオメガ
、6x^4
は2x^4
(当社キロ(xよりも速く成長します) 関数)。 のいくつかのポイントの後に、6x^4
という用語は、常に2x^4
より大きいように、2x^4
の成長を上回ります。グラフィカルに、2つの関数は次のようになります。負の係数にもかかわらず
、はっきりkg(x)
はf(x)
の下限です。
さて、これは任意の負の係数を持つ多項式関数については常に真である - 任意の係数を持つ関数f(x)
が最高度の多項式に拘束されることになるということ?いいえ。最高度の項に負の係数がある場合、境界は全く同じではありません。 f(x) = -2x^2
とする。 (c
は、定義により、正の定数であるように)任意c>0
によって満足することができる
-2x^2 < = CX^2 -2 < = C
:我々はf(x) = O(x^2)
ことを示すことができます。しかし、私たちは下界のための同じをしようとした場合:
-2x^2> = CX^2 -2 < = C
その後、我々は右のc
を見つけることができないため、再びc
は負でない必要があります。
すばらしい例。しかし、下界の証明はずっと難しくなっています。この例は、多項式時間関数のbig-oのためのものですが、下界を証明したい場合はどうしますか?それについてどうやって行きますか? – Betsegaw
@betsegawは私の例で仕事をさせてくれます。つまり、それはうまくいくはずですが、私はあなたのために書きます。 – simchona
私はちょうど長い時間の後にこれを見ています。詳細な説明をいただきありがとうございます(私はあなたの最初の説明のみを初めて見ました)。私はいつも最も高い言葉が正の係数を持つ必要があることを知っていましたが、私はそれがあまりにも拘束力があることを示す方法を理解できませんでした。しかし、今私はあなたが_特定の多項式のためにそれを表示する方法を見ることができます、私は一般的な多項式のためにそれを試みるつもりです。 – Betsegaw
- 1. 多項式の係数maxima
- 2. random.sampleの時間複雑度
- 3. プログラムの時間複雑度
- 4. フィボナッチアルゴリズムの時間複雑度
- 5. 多項式時間アルゴリズム
- 6. 多次元ハッシュの空間複雑度
- 7. このwhileループの時間複雑度
- 8. 以下のコードの時間複雑度
- 9. アルゴリズムのBigO時間の複雑度
- 10. Javaでの複素係数多項式根の発見
- 11. キャニーエッジ検出器の時間複雑度
- 12. モジュラー算術の時間複雑度
- 13. erlang dictの時間複雑度
- 14. 分割アルゴリズム - 時間の複雑度
- 15. 遺伝的アルゴリズムの時間複雑度
- 16. python str.index時間の複雑度
- 17. アルファベータ検索時間の複雑度
- 18. Swift Setの時間複雑度.indexOf
- 19. は、多項式とみなされるO(| E | * | V |)複雑度ですか?
- 20. スキームのacc関数の時間複雑度は?
- 21. 時間複雑度/グラフ理論
- 22. 時間複雑度を計算する
- 23. アルゴリズムの時間複雑
- 24. 二項係数関数階乗または多項式の増加です。
- 25. バンカーのアルゴリズム計算時間の複雑度
- 26. バイナリツリーO(n)のInOrder Treeトラバーサルの時間複雑度?
- 27. Javaの部分文字列()の時間複雑度
- 28. この関数の時間複雑度はどのくらいですか?
- 29. この関数の時間複雑度はどのくらいですか?
- 30. Distinct Subsequencesの時間複雑度を計算する
答えの2番目の部分は、私が探していたものです。多項式時間の複雑さが負の係数を持つことは可能ですが、各ステップでは時間がかかるだけです。この例は非常に実証的でした。 – Betsegaw