2

ここと math.stackexchange の両方で Big-Oh に関する質問と回答を読むのに多くの時間を費やしましたが、math.stackexchange はこの種の質問を好まないように見えるため、これが最適な場所のようです。それで、私は CS コースの大学でいくつかのコースワークを与えられましたが、それを完全には理解していません。皆さんが助けてくれることを望んでいました. 「宿題」の質問はここでは少し嫌われていることを理解しているので、私のコースワークの一部ではありません、同様のスタイルの別の例を選択しました.

だから、ここに私がメモで与えられた定義があります: 代替テキスト

そして、私が与えられた質問は次のとおりです。

定義 2.5 を使用して、f(n) が O(g(n)) の場合、k + f(n) も O(g(n)) であることを示します。

このような問題に対するあらゆる種類の回答を求めて、3 日間 Web を検索しました。定義 2.5 を見ると、f(n) は O(g(n)) であり、k + f(n) は O(g(n)) であると書かれています。私にはそれで十分ですが、それがどのように導出されたかを証明する必要があるようです. 私は最初は誘導によって何とかすべきだと思っていましたが、それ以来、それに反対することに決めました.もっと簡単な方法があるに違いありません.

どんな助けでも大歓迎です。誰かが率直に答えてくれるとは思っていません。方法論か、これを行うためのテクニックを学べる場所への参照のどちらかを好むでしょう。これは私の実際のコースワークではなく、同様のスタイルの問題であることをもう一度思い出していただけますか。

前もって感謝します。

4

4 に答える 4

2

f(n) が O(g(n)) であると仮定
すると、すべての n > k' に対して ac と k' st が存在します: f(n) <= cg(n)
ここで f(n) + k を考え
ます d を st としますk <= d * g ( n) すべての n より大きい k
' +c)(g(n)) 次に、定義を使用して、c を d+c に置き換えます。==> f+k は O(g) にあります。


于 2010-11-25T21:52:37.277 に答える
1

f(n) <= cg(n)

k + f(n) <= c'g(n) ここで、c' = ck

したがって、k + f(n) は O(g(n)) です。

于 2010-11-25T22:02:42.330 に答える
0

次にkis O(1)f(n)is a O(g(n))、この値を合計すると、O(1+g(n))これは is になりO(g(n))ます。

f(n)あなたが本に書いたからO(g(n))ですk + f(n)O(g(n))

定数の追加を無視する

Big-O記法を変更できないため、定数は常に無視されます。定数は記法に含まO(1)れてBig-Oいます。

于 2010-11-25T21:52:59.050 に答える
0

価値のあることとして、これはbig-O記法のやや不自然な定義です。私の意見では、より一般的でより直感的な定義は、f(n) ~ O(g(n))有限の実数のn->a場合lim|f(n)/g(n)| <= Aと同じです。n->aA

重要な部分は、制限コンテキストが必要なことです。CS では、その制限は暗黙のうちに無限大であると見なされます (n問題のサイズが大きくなると、この傾向が強まる傾向があるため) が、原則としては何でもかまいません。たとえば、sin(x) ~ O(x)as x->0(実際には、 に厳密に漸近しxます。これは小角近似です)。

于 2010-11-25T22:23:50.317 に答える