なぜしない


8

でCLRS(ページ49-50上)、次の文の意味は何ですか。

Σi=1nO(i)(の単一の匿名関数であるi)が、同じではありません実際に持っていません、解釈。」O(1)+O(2)+⋯+O(n)


私はあなたの質問をより正確に定式化しようとしました。また、ここではラテックスがサポートされているため、適切にフォーマットされた数学を記述できます。より具体的にすることをお勧めします:何が混乱しているのですか?どの部分がトラブルの原因ですか?(たぶん、それに応じて質問のタイトルも編集できます)。
— Juho


1
間違いなく、拡張された合計にも解釈がありません。最初に書く必要があります。O(∑…)
— ラファエル

1
の意図する意味を誰かが説明できますか?次数 " " の関数の合計?、これはほとんど意味がありません。でインデックス付けされた関数の和と、ある順序の和?? n i O (i )= O (1 )n i∑i=1nO(i)niO(i)=O(1)ni
— Yves Daoust、2014年

回答:


12

以来、いることを示唆したくなる ...しかし、これは実際には有効ではありません。その理由は、合計の各項に異なる定数がある可能性があるためです。O (1 )+ O (2 )+ ⋯ + O (n )= O (n 2)1+2+⋯+n=O(n2)O(1)+O(2)+⋯+O(n)=O(n2)

例

例を挙げましょう。合計、、、考えますなど。なお、、、、、などの各タームのために和。したがって、をS (j )= O (1 )+ ⋯ + O (j )の形式で書くのが妥当です。したがって、S ( S (2 )= 1 2 + 2 2 S (3 )= 1 2 + 2 2 + 3 2 S (4 )= 1 2 + 2 2 + 3 2 + 4 2 1 2 ∈ O (1 )2 2 ∈ O (2 )3S(1)=12S(2)=12+22S(3)=12+22+32S(4)=12+22+32+4212∈O(1)22∈O(2)4 2 ∈ O (4 )S (J )= 1 2 + ⋯ + J 232∈O(3)42∈O(4)S(j)=12+⋯+j2S(j)=O(1)+⋯+O(j)S(j)=O(j2)?いいえ。実際、S(n)=n(n+1)(2n+1)/6なので、S(n)=Θ(n3)です。

それでも問題が解決しない場合は、次のより正確な数学的開発を試してみましょう。

正式化

リコール、たとえば、の解釈ことが非負関数の組であることであるF (N )、すなわち(、関数の集合F (N )の定数が存在するように、C ≥ 0 、dは≥ 0ようにF (N )≤ C ⋅ N 2すべてについてのn ≥ D)。O(n2)f(n)f(n)c≥0,d≥0f(n)≤c⋅n2n≥d

解釈に最も近いのは、それがf 1(n )+ f 2(n )+ ⋯ +の形式の関数のセットであることですF nは(N )、その結果、F 1(N )∈ O (1 )、F 2(NO(1)+O(2)+⋯+O(n)f1(n)+f2(n)+⋯+fn(n)f1(n)∈O(1)、···、 F N(N )∈ O (N )。f2(n)∈O(2)fn(n)∈O(n)

しかし、各定数は異なる場合があります。したがって、各F iが非負関数であるF I定数が存在するように、C I ≥ 0 、dはiは ≥ 0とfをI(N )≤ C I ⋅ I全てに対してN ≥ D I。fififici≥0,di≥0fi(n)≤ci⋅in≥di

これで、について何が言えるでしょうか。あまり役に立たない。我々は定数が存在することを知っているDは= 最大値(D 1、D 2、... 、D N)、その結果G (N )≤ C 1 ⋅ 1 + Cg(ん)=f1(ん)+f2(ん)+⋯+fん(ん)d=最高(d1、d2、…、dん)全てについてのn ≥ D。さて、この合計について何が言えるでしょうか?ええと、答えはまったく言えません。それは任意に大きくなる可能性があります。できるように誘惑された C = マックス(C 1、C 2、... 、C N)を、その言う G (nは)≤ C ⋅ (1 + 2 + ⋯ + N )≤ Cg(n)≤c1⋅1+c2⋅2+⋯+cn⋅nn≥dc=max(c1,c2,…,cn) ...しかし、我々は、単一の一定の値必要があるため、これは、実際には正しくない Cのすべてのための作品というのn、および値の最大値(C 1、C 2、... 、C N)定数ではなく、 nの関数です。g(n)≤c⋅(1+2+⋯+n)≤c⋅n2=O(n2)cnmax(c1,c2,…,cn)n

だから、任意の定数が存在しない可能性がありますようにG (N )≤ C ⋅ (1 + 2 + ⋯ + N )。任意の定数が存在しない可能性がありますCようにG (N )≤ C ⋅ N 2。その保証はありませんG (N )∈ O (N 2)。cg(n)≤c⋅(1+2+⋯+n)cg(n)≤c⋅n2g(n)∈O(n2)

もっと読むために

この一般的な問題を扱う他の質問については、https://math.stackexchange.com/q/86076/14578およびSums of Landauの用語を再確認してください。


2
TLDR:あなたは彼らがすべてになりたいと同じ が、彼らは正式に、ではありません。f∈O(_)
— ラファエル

1

CLRSのコメントが紛らわしいのは、技術的にはがO (1 )+ O (2 )+ … O (n )として定義されているためです。実際に起こっていることは、CLRSが簡略化のために表記法を乱用していることです。∑i=1nO(i)O(1)+O(2)+…O(n)

  • は一連の関数を表します。たとえば、 f (n )= 1、 f (n )= 1 / n、および f (n )= n 1 / nが含まれます。O(1)f(n)=1f(n)=1/nf(n)=n1/n
  • あなたが書くときあなたが技術的に2セットを追加しているO (1 )とO (2 )とのsumsetの操作。DWが別の回答で明確に説明しているように、これが一定数以上の用語で行われると、予期しない動作が発生する可能性があります。O(1)+O(2)O(1)O(2)

その代わり、CLRSは、このようにあなたのように解釈するでしょうとしてΣ nは、私は= 1 fは(I )ここで、一般的な関数F (I )∈ O (I )。たとえば、彼らは∑ n i = 1 3 i − 5は∑ n i = 1 O (i )またはO∑i=1nO(i)∑i=1nf(i)f(i)∈O(i)∑i=1n3i−5∑i=1nO(i)。O(n2)


この説明は正しくありません。を追加しても問題はありません。それは明確です。O (1 )は関数のセット、O (2 )は関数のセット、S 、Tが関数のセットである場合、S + Tは通常、関数のセット{ f (n )+ g (n ):f (n )∈O(1)+O(2)O(1)O(2)S,TS+T{f(n)+g(n):f(n)∈S,g(n)∈T}

これが集合加算の一般的な定義であり、明確に定義されていることに同意しますが、それが一般的な意味であるとは思いません。上記の回答であなたが正しく言っているように、一定数以上の用語に集合加算を使用すると問題が発生します。
— Ari Trachtenberg

Σ私O(私)Σ私f(私)fO(1)+O(2)+⋯+O(ん)f1(1)+f2(2)+⋯+fん(ん)f1、f2、…、fん そのような...」。全く同じではありません。
— JeffE 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.