Landauの用語の合計の何が問題になっていますか?


14

私が書いた

∑私=1n1私=∑私=1nO(1)=O(n)

しかし、私の友人はこれが間違っていると言います。TCSチートシートから、合計がHnと呼ばれ、が対数的に増加することがわかりnます。したがって、私の限界はあまりシャープではありませんが、必要な分析には十分です。

私は何を間違えましたか?

編集:私の友人は同じ推論で、私たちはそれを証明できると言います

∑私=1n私=∑私=1nO(1)=O(n)

これは明らかに間違っています!ここで何が起こっていますか?


2
この質問のタグについての議論を参照してくださいここに。
— ラファエル


回答:


10

あなたがしているのは、非常に便利な表記法の乱用です。

O(f)はセットを表し、あなたがしているようにそれらに対して算術演算を行うことができないので、あなたが書くことはナンセンスだと言う人もいます。

しかし、それらのペダントを無視し、がセットの一部を表すと想定するのは良い考えです。だから我々は言うとき、F (N )= G (N )+ O(N )、私たちは本当に平均もしそのF (N )- G (N )∈ O(N )。(注:f (n )は数値であり、fO(f)f(n)=g(n)+O(n)f(n)−g(n)∈O(n)f(n)f 関数です!)

これにより、次のような式を書くことが非常に便利になります。

n≤∑k=1nk1/k≤n+O(n1/3)

これが意味することは、いくつか存在することである、その結果f∈O(n1/3)

n≤∑k=1nk1/k≤n+f(n)

あなたの場合

∑k=1n1k=∑k=1nO(1)=O(n)

さらに悪用しているので、注意する必要があります。

ここには2つの可能な解釈があります:はnの関数、またはkの関数を参照していますか?O(1)nk

正しい解釈は、それを関数として解釈することだと思います。k

あなたはの関数としての考え方をしようとした場合、それは思考のように、潜在的な誤謬につながるかもしれない、間違っていないと思っkがあるO(1 )と書こうとΣ のn のk = 1、K = Σ nは、K = 1 Oを(1 )nkO(1)∑k=1nk=∑k=1nO(1)

あなたはの関数として、それのことを考えてみた場合、あれば、というのは本当であるF = O(G )(引数はに行くと∞)とgは決してありません0という、kf=O(g)∞g0

S(n)=∑k=1nf(k)=∑k=1nO(g(k))=O(∑k=1n|g(k)|)

途中で、我々は、表記の都合の乱用使用していることに注意してください、そのいくつかの機能のために意味するために、H ∈ O(G )の合計であるΣ N K = 1つの H (K )。O内の最終関数はnの関数を参照することに注意してください。証明はそれほど難しくはありませんが、漸近的な上限(つまり、十分に大きな引数)を扱っているという事実に対応する必要がありますが、合計は1から始まります。O(g(k))h∈O(g)∑k=1nh(k)On1

あなたはの関数として、それのことを考えてみた場合は、それがあればということも事実であるF = O(G )(引数はに行くと∞)、その後nf=O(g)∞

S(n)=∑k=1nf(k)=∑k=1nO(g(n))=O(ng(n))

したがって、どちらの解釈でも、証明は本質的に正しいです。


1
結論:ランダウシンボルが出現するたびに定数を導入する(持っている)ことに注意してください(確認してください)。
— ラファエル

8

あなたが書いたことは完全に正しいです。次高調波の数目は、設定に実際にあるO (N )。nO(n)

証明: 。◻∑i=1n1i≤ln⁡n+1≤2n=O(n)◻

上限は厳密ではありませんが、正しいです。O(n)


4
OK:1 / i≤1 = O(1)。
— -JeffE

1
懸念は、2番目の等号に向けられています。どうすれば確認できますか?
— ラファエル

2
しかし、それも正しいです。それぞれがO(1)であるn個の項の合計は、実際にはO(n)です。
— スレシュ

2
@Suresh Oによって暗示される定数が総和変数に依存しない場合にのみ、それがここでのポイントです(シードの質問)。O
— ラファエル

2
∑私O(1)=O(n)私=O(1)

6

2番目の例では、主張することはできません。

私=O(1)

はnによって変化するため。数ステップ後、i > n / 2になります。より適切な方法は、と言うことであり、iは= O (n個の)加算を通して、実際にので、私は決して超えない1 ⋅私n私>n/2私=O(n)私1⋅n

∑私=1n私=∑私=1nO(n)=nO(n)=O(n2)

ただし、実際にすべきことは、最後にのみbig-O表記を使用することです。これらの落とし穴を避けるために漸近表記法を使用した場合にのみ、可能な限り厳密に集計の上限を設定します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.