の意味は何


回答:


33

あなたが正しいです。用語は、1つの変数の関数に対して定義されている古典的なbig-O表記法をわずかに乱用していることに注意してください。ただし、複数の変数には自然な拡張があります。O(n+m)

単にので、話す あなたはそれを推測することができおよびは、同等の漸近的上限です。

12(m+n)max{m,n}m+n2max{m,n},
O(n+m)O(max{m,n})

一方、 はとは異なりますを設定すると、O 最小{ N M } 、N = 2 、M O 2 M + M = O 2 MO M = O { 2 MM } O(n+m)O(min{n,m})n=2m

O(2m+m)=O(2m)O(m)=O(min{2m,m}).

3
「アルゴリズム分析で一般的に使用される特性を暗示するような方法で、複数の変数の関数に対してbig-O表記を定義することは不可能であることを示します。また、一般的な定義big-O表記内の関数が厳密に非減少に制限されている場合でも、これらのプロパティを意味しないでください。」
ラファエル

4
フォローアップ私の上記のコメントのように、最近の記事のアルゴリズム解析のためのO-表記のA一般的な定義 K. Rutanenによって(2015)ない含む、一般的なセットのために意味のあるO-表記を定義する方法を示し。N2
ラファエル

25

信じられないかもしれませんが、(私の経験では)多くのアルゴリズムの人々は大きなO表記が正式に何を意味するのか実際には考えていないようです。いくつかの問題は、Rodney R. Howell の論文「複数の変数を使用した漸近表記法」で説明されています。

興味深いことに、ほとんどの入門アルゴリズムコースは、単一の変数を使用した大きなO表記法について非常に正式な時間を費やしており、次の週では、表記は実際に意味します。


私の答えのリンクはハウエルの記事を参照しており、これは確かにこの質問に対する素晴らしい治療法です。
-A.シュルツ

1
@ A.Schulz:確かに、私はあなたに答えを同時に入力していました。
クリストファーアーンスフェルトハンセン

1
私はLandauの用語に注意することを支持しているので同意しますが、これには良い答えには大げさな言葉が含まれています。
ラファエル

4
@Raphael:答えは暴言を意味するものではありませんが、もっと正確に表現できたかもしれません。問題は、基本的に、複数のパラメーターを持つ大きなOの意味は何かということです。答えは、アルゴリズムコミュニティでコンセンサスが何であれ、アルゴリズムコースで教えられていることなどを意味するべきだということです。
クリストファーアーンスフェルトハンセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.