アルゴリズムと複雑さに関する試験の準備として、私は現在、古い演習を解いています。初めて遭遇したときにすでに苦労してきた概念の1つは、償却分析の概念です。償却分析とは何ですか?私たちの講義ノートには、「償却分析は特定の操作に必要な「平均時間」の限界を与え、最悪の場合の限界を与えることもある」と述べられています。それは本当に便利に聞こえますが、例について言えば、私が何をしなければならないのかわからず、サンプルソリューションを読んだ後でも、彼らが何をしているのかわかりません。
基数2に1を加算してみましょう。つまり、0、1、10、11、100、101、110、111、1000、...償却分析を使用して、各ステップで変更する必要があるのは常に多くのビットだけを償却することを示します。
(元々はドイツ語での演習なので、完全に正確ではないかもしれない私の翻訳をお詫びします)
ここで、標準解は最初に、いくつかの定数に対してを定義し。これは、潜在的な関数と呼ばれるもので、過剰な時間の単位に何らかの形で対応しているものだと思います(ただし、この特定の定義を思い付く理由はわかりません)。番目のステップでビットを変更する必要があると仮定します。そのようなステップは常に次の形式です
この発言は私には理解できますが、やはりその背後にある動機はわかりません。次に、どこからともなく、彼らは彼らが「見積もり」と呼ぶものを思いつきます
そして、場合、を取得あると述べています。
今何があったの?何が?なぜを選択できるのですか?一般的に、各ステップで継続的に多くの「単位時間」だけが償却されることを示す必要がある場合、それはが一定でことを示す必要があることを意味しますか?
償却分析に関しては他にもいくつかの演習があり、私もそれらを理解していません。誰かがこれを手伝ってくれるなら、他のエクササイズをもう一度試すことができると思いました。多分それが本当にコンセプトを理解するのに役立つでしょう。
助けてくれて本当にありがとう。