時間の複雑さの反復関係


7

近似を 探していΘ

T(ん)=T(ん−1)+cん2

これは私がこれまでに持っているものです:

T(n−1)=T(n−2)+c(n−1)2T(n)=T(n−2)+c(n−1)+cn2T(n−2)=T(n−3)+c(n−2)2T(n)=T(n−3)+c(n−2)2+c(n−1)2+cn2T(n−3)=T(n−4)+c(n−3)2T(n)=T(n−4)+c(n−3)2+c(n−2)2+c(n−1)2+cn2

したがって、この時点で、を一般化して方程式に代入しました。k

T(n)=T(n−k)+(n−(k−1))2+c(k−1)2

今、私は1のベースケースを写真に取り入れ始めました。以前、より簡単な問題のカップルで、私は1に等しく、その後のために解決し、私の一般k個の方程式を設定することができたk。次に、k方程式に戻して、私の最終的な答えを取得します。

しかし、私は(n−k+1)2部分に完全に行き詰まっています。つまり、実際にこれらすべてを無効にする必要がありますか?私はそれをして、k2−2kn−2k+n2+2n+1=1。この時点で、以前の問題ではこれを見たことがないので、私は完全に何か間違ったことをしているに違いないと思います。

これを解決する方法について誰かが私にいくつかの助けを提供できますか?よろしくお願いします。また、方程式の最後の部分からnk = 0に設定しn−k=0て、k = nを取得する別の方法も試しましたk=n。私は最後に向かってnを方程式に戻し、最終的にn2を答えとして得ました。これが正しいかどうか私には手がかりがありません。

私はアルゴリズム分析クラスに属しており、私たちは繰り返し関係を始めました。この問題を正しく行っているかどうかは100%わかりません。行き詰まって、どうすればいいのかわからなくなってしまいました。たぶん私はこれを間違っているのだろう。質問は上限または下限を気にせず、シータが必要なだけです。


再発の解決に関する多くの資料については、この質問を参照してください。
— ラファエル

回答:


9

次のように、推論を続けてください。

T(ん)=T(ん−1)+cん2=T(ん−2)+c(ん−1)2+cん2=…=T(ん−ん)+c(12)+c(22)+…cん2=T(0)+cΣ1≤私≤ん私2。

最初の個の正方形の加算式を使用してこれを単純化する方法を知っていますか? ん


最初のn個の正方形の加算式が何を意味するのか、完全にはわかりません。それはn(n + 1)/ 2タイプのようなものですか?
— Tastybrownies、2012年

まさにその通りです
— PKG 2012年

3

より一般的には、の形式の再帰関係は、解持ちます。T(ん)=T(ん−1)+f(ん)T(ん)=Σ私=0んf(私)


2

数式を覚えるのが難しい場合もありますが、統合は便利です-

Σ私=1ん私2≈∫1ん私2d私=13私3]1ん=13(ん3−1)≤cん3=O(ん3)

私はこの方法が大好きですが、制限はありません。Ω
— Pratik Deoghare 2013

2
@PratikDeoghareはいそうです。関数はf(私)=私2モノトーンです。
— Igor Shinkar 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.