ビッグO表記

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ
Big O表記の例: 存在するように (例えば、 ) と (例えば、) そのような いつでも

ランダウの記号を記述する数学的表記で限定的挙動関数引数が特定の値または無限大に向かう傾向があります。 Big Oは、Paul Bachmann[1] Edmund Landau[2]などによって発明された一連の表記法のメンバーであり、まとめてBachmann-Landau表記法または漸近表記と呼ばれます。

コンピュータサイエンス、大きなO記法をするために使用される分類アルゴリズム入力サイズが大きくなるにつれて、その実行時間やスペース要件が育つ方法に応じて。[3] において、解析的整数論、ランダウの記号は、多くの場合の差に結合し発現するために使用される算術関数とよりよく理解近似。このような違いの有名な例は、素数定理の剰余項です。 Big O表記は、同様の見積もりを提供するために他の多くの分野でも使用されています。

Big O表記は、成長率に従って関数を特徴付けます。同じ成長率の異なる関数は、同じO表記を使用して表すことができます。関数の成長率は関数の次数とも呼ばれるため、文字Oが使用されます大きなO表記による関数の説明は、通常、関数の成長率の上限を提供するだけです。

大きなO表記に関連付けられているのは、記号o、Ω、ω、およびΘを使用して、漸近的な成長率の他の種類の境界を表すいくつかの関連する表記です。

正式な定義

してみましょうfがあること本当複素数値関数およびグラム実数値関数。両方の関数を正の実数の無制限の サブセット定義しxの十分に大きいすべての値に対して厳密に正である[4] 1つの書き込み

絶対値場合 はせいぜい正の定数の倍数です xのすべての十分に大きい値に対してあれは、正の実数が存在する場合はMと実数X 0、その結果は、

多くの場合、変数xが無限大になるときの成長率に関心があるという仮定は述べられておらず、より簡単に次のように記述されます。

この表記は、実数a(多くの場合、a = 0)の近くでのfの動作を説明するためにも使用できます。

正の数が存在する場合 およびMは、すべてのxに対して

GXの値について非ゼロであるように選択され、X 十分近く、これらの定義の両方を使用して統一することができる優れた限界を

もしも

コンピュータサイエンスでは、もう少し制限的な定義が一般的です。 どちらも正の整数から非負の実数までの関数である必要があります。存在する場合、正の整数は、M及びnは0よう すべてのために [5]必要に応じて、有限範囲は(暗黙的に)除外されます'砂 選択してのドメインnは0十分に大きいです。(例えば、 で未定義です 。)

通常の使用法では、O表記は無症状です。つまり、非常に大きなxを指します。この設定では、「最も急速に」成長する用語の寄与により、最終的に他の用語は無関係になります。その結果、次の簡略化ルールを適用できます。

  • 場合は、Fxはいくつかの用語の和である最大の成長率は1がある場合、それを保つことができ、他はすべて省略します。
  • 場合Fxはいくつかの要因の積である、任意の定数(に依存しない製品中の用語xが)を省略することができます。

たとえば、fx)= 6 x 4 − 2 x 3 + 5としO表記を使用してこの関数を単純化しxが無限大に近づくときの成長率を記述するとします。この関数は、6 x 4-2 x 3、および5の3つの項の合計です。これら3つの用語のうち、最も高い成長率を有するものは、の関数としての最大指数を有するものであるX、すなわち6 X 4。ここで、2番目のルールを適用できます:6 x 4生成物である6及びX 4第一因子は依存しないで、X。簡略化した形でこの因子の結果を省略X 4。したがって、我々はと言うFxはの"ビッグO"であるX 4。数学的には、fx)= Ox 4)と書くことができます。この計算は、正式な定義を使用して確認できます。fx)= 6 x 4 − 2 x 3 + 5およびgX)= X 4から正式な定義適用すると、 fx)= Ox 4というステートメントはその展開と同等です。

いくつかの適切な選択のためのx 0Mとすべてのためのx > X 0これを証明するために、x 0 = 1およびM = 13とします。次に、すべてのx > x 0に対して

それで

使用法

Big O表記には、2つの主要なアプリケーション領域があります。

どちらのアプリケーションでもO(・)内に現れる関数gxは通常、定数係数と低次の項を省略して、可能な限り単純になるように選択されます。

この表記法には、正式には近いが著しく異なる2つの使用法があります。[要出典]

ただし、この区別は適用のみであり、原則ではありません。「ビッグO」の正式な定義はどちらの場合も同じですが、関数の引数の制限が異なります。独自の研究?]

無限の漸近解析

アルゴリズムの分析で一般的に使用される関数のグラフ。各関数の操作数Nと入力サイズnを示しています。

Big O表記は、アルゴリズムの効率を分析するときに役立ちます。たとえば、サイズnの問題を完了するのにかかる時間(またはステップ数)は、Tn)= 4 n 2 − 2 n +2であることがわかります。以下のように、nが大きくなり、N 2 という用語は、他のすべての用語が無視-ためすることができるように、例えば、支配に来るN = 500、ターム4 N 2と同じ大きさの1000倍である2 n個学期。後者を無視しても、ほとんどの目的で式の値に与える影響はごくわずかです。さらに、係数は、我々は、他と比較した場合には無関係になるため、このような用語を含む式として表現のnは3又はN 4。場合でも、TNは)1,000,000 = N 2の場合、UN)= N 3は、後者の意志が常に後前者を超えNより大きい成長1,000,000T(1,000,000)= 1,000,000 3 = U(1,000,000))。さらに、ステップ数は、アルゴリズムが実行されるマシンモデルの詳細によって異なりますが、さまざまなタイプのマシンは、通常、アルゴリズムの実行に必要なステップ数の一定の要因によってのみ異なります。したがって、大きなO表記は、残っているものをキャプチャします。

また

そしてアルゴリズムが持っていると言うの順N 2時間の複雑さを。記号「=」は、通常の数学的意味で「等しい」を表すことを意味するのではなく、より口語的な「is」を表すため、2番目の式はより正確であると見なされることがあります(以下の「等号」の説明を参照)。最初のものは、表記法の乱用と見なされる人もいます。[6]

微小漸近解析

Big Oは、数学関数の近似で誤差項を記述するためにも使用できます。最も重要な用語は明示的に記述され、次に最も重要でない用語が1つの大きなO用語に要約されます。たとえば、xが小さい場合に有効な指数級数とその2つの式について考えてみます

第二の発現(有するものOX 3))誤差の絶対値を意味するEをX - (1 + X + X 2 /2)最大である定数倍であります| x 3 | xが0に十分近いとき

プロパティ

関数fを他の関数の有限和として記述できる場合、最も速く成長する関数がfn)の次数を決定します。例えば、

関数は多項式で囲まれてもよい場合、特に、N、次にとしてNする傾向が無限大、一方が無視できる低次多項式の項を。セットOn cOc nは非常に異なります。cが1より大きい場合、後者ははるかに速く成長します。より速く成長する機能n個のCいずれかのためのCが 呼ばれsuperpolynomial。フォームの任意の指数関数よりもゆっくりと成長する一つのC nが呼ばれていますサブ指数。アルゴリズムには、超多項式とサブ指数の両方の時間が必要になる場合があります。これの例は、最速の既知のアルゴリズムが挙げられる整数の因数分解および機能をNログN

対数内のnの累乗は無視できます。集合O(log nO(log(n c))とまったく同じです。対数は定数係数のみが異なり(log(n c)= c log nであるため)、大きなO表記はそれを無視します。同様に、定数ベースが異なる対数は同等です。一方、底が異なる指数は同じ次数ではありません。例えば、2 n個3 Nは同じ順序ではありません。

単位を変更すると、結果のアルゴリズムの順序に影響する場合と影響しない場合があります。単位を変更することは、適切な変数に定数を掛けることと同じです。例えば、の順にアルゴリズムの実行される場合、N 2、置換NによりCNするの順にアルゴリズムの実行手段C 2 、N 2、およびランダウの記号は、一定の無視C 2。これは、c 2 n 2 = O(n 2と書くことができます。ただし、アルゴリズムが2 nのオーダーで実行される場合は、ncnに置き換えます。2 cn =(2 cnを与えます。これは、と等価ではない2 nは、一般的です。変数を変更すると、結果のアルゴリズムの順序にも影響する可能性があります。たとえば、アルゴリズムの実行時間が入力番号xのn測定されたときにOn)である場合、その実行時間は入力番号x自体の関数として測定されたときにO(log x)になります。 、n = O(log x)であるため

商品

合計

もしも それから したがって、 それから 言い換えれば、この2番目のステートメントは次のように述べています凸錐です。

定数による乗算

してみましょうkはゼロでない一定です。それで言い換えれば、、 それから

複数の変数

大きなO(および小さなo、Ωなど)も複数の変数で使用できます。複数の変数に対して正式に大きなOを定義するには、次のように仮定します。 のサブセットで定義された2つの関数です 私達は言う

[7]の場合のみ

同等に、 いくつかのための 次の条件に置き換えることができます 、 どこ Chebyshevノルムを示しますたとえば、ステートメント

次のような 定数CMが存在すると主張する

ここで、gnm)は次のように定義されます。

この定義により、 無限に増加します。特に、声明

(NS、 )とはかなり異なります

(NS、 )。

この定義では、関数が定義されているサブセットは、ステートメントを単変量設定から多変量設定に一般化するときに重要です。たとえば、、 それから 制限すれば 、ただし、それらがで定義されている場合はそうではありません

これは、大きなOを多変量関数に一般化したものだけではなく、実際には、定義の選択にいくつかの矛盾があります。[8]

表記事項

等号

上記で定義されているfx)is Ogx))」というステートメントは、通常、fx)= Ogx))と記述されます。等号の使用は、このステートメントにはない対称性を示唆しているため、誤解を招く可能性があるため、これを表記法の乱用と見なす人もいます。デBruijnグラフは、言うOX)= OX 2真であるが、OX 2)= Oxはそうではありません。[9]は Knuthのは、両側を逆にすることができれば、「私達のようなとんでもないもの推測可能性があるため、「一方向等式」のような文を記述するnは= N 2のIDから、N = ON 2及びN 2 = On 2。」[10]別の手紙で、クヌースはまた、「等号はそのような表記に関して対称ではない」と指摘しました。この表記では、「数学者は通常、英語で「is」という単語を使用するので、=記号を使用します。アリストテレスは男ですが、男は必ずしもアリストテレスではありません。」[11]

これらの理由から、使用するより正確であろうセット表記と書き込みfはX)∈ OGX)) として読み取る: " Fxはの要素である OGX))"、または" fxは集合 Ogx))")にあり、Ogx))をすべての関数hx)のクラスとして考えます。hx)| ≤  C | gx)| 一定のCに対して[10]ただし、等号の使用は慣例です。[9] [10]

その他の算術演算子

Big O表記は、より複雑な方程式で他の算術演算子と組み合わせて使用​​することもできます。たとえば、hx)+ Ofx))は、hx)の成長に加えて、fx)の成長に制限される部分を持つ関数の集合を示します。したがって、

と同じ表現

n個の要素のセットを操作するアルゴリズムが開発されているとします。その開発者は、入力セット内の要素の数に関して、アルゴリズムの実行にかかる時間を(任意の時間測定で)表す関数Tn)を見つけることに関心があります。アルゴリズムは、最初にサブルーチンを呼び出してセット内の要素をソートし、次に独自の操作を実行することによって機能します。ソートにはOn 2)の既知の時間計算量があり、サブルーチンの実行後、アルゴリズムはさらに55 n 3 + 2 n +10を取る必要があります。終了する前の手順。したがって、アルゴリズムの全体的な時間計算量は、Tn)= 55 n 3 + On 2として表すことができますここで、2 n + 10という用語は、急速に成長するOn 2)に含まれています繰り返しになりますが、この使用法では「=」記号の正式な意味の一部が無視されますが、大きなO表記を一種の便利なプレースホルダーとして使用できます。

複数の用途

より複雑な使用法では、O(・)は方程式のさまざまな場所に現れる可能性があり、それぞれの側に数回現れることもあります。たとえば、次のことが当てはまります。

以下のような文の意味は次のとおりのための任意の各満たす関数O左側に(・)が、あるいくつかのそれぞれ満たす関数O右側(・)は、式にこれらのすべての機能を置換することができるように両側が等しい。たとえば、上記の3番目の方程式は次のことを意味します。「任意の関数fn)= O(1)に対して、n fn = gn)となるような関数gn)= Oe n)があります。)。 "上記の「集合の内包的記法」に関して、意味は、左側で表される関数のクラスが右側で表される関数のクラスのサブセットであることを意味します。この使用法では、「=」は正式なものです。 「=」の通常の使用とは異なり、対称関係ではない記号。したがって、たとえばn O(1) = Oe nは、誤ったステートメントOe n)= n O(1)を意味しません。

組版

Big Oは、次の例のように、イタリック体の大文字の「O」としてタイプセットされます。 [12] [13] においてTeXのは、単に数式モードの内側にOを入力することによって製造されます。ギリシャ語で名前が付けられたバッハマン-ランダウ表記とは異なり、特別な記号は必要ありません。それでも、一部の著者は書道の変種を使用しています代わりは。[14] [15]

一般的な機能の順序

これは、アルゴリズムの実行時間を分析するときに一般的に遭遇する関数のクラスのリストです。いずれの場合も、cは正の定数であり、nは際限なく増加します。通常、成長の遅い関数が最初にリストされます。

表記 名前
絶え間ない 2進数が偶数か奇数かを判断する。計算; 一定サイズのルックアップテーブルを使用する
二重対数 一様分布値のソートされた配列で 補間検索を使用してアイテムを見つけるために費やされた比較の数
対数 二項ヒープ内のすべての操作だけでなく二分探索または平衡探索を使用して、ソートされた配列内のアイテムを検索する

多対数 行列の連鎖乗積は、並列ランダムアクセスマシンで多対数時間で解くことができます

分数のべき乗 kdツリーで検索
線形 ソートされていないリストまたはソートされていない配列でアイテムを検索する。リップルキャリーによる2つのnビット整数の加算
n ログスター n Seidelのアルゴリズムまたはunion-findアルゴリズムを使用して単純なポリゴンの三角形分割実行しますご了承ください
linearithmicは、準線形、対数線形、または" Nログ N " 実行高速フーリエ変換を可能な限り最速の比較ソート; ヒープソートマージソート
二次 単純なアルゴリズムで2つのn桁の数値を乗算します。バブルソート選択ソート挿入ソートなどの単純なソートアルゴリズム(最悪の場合)のようないくつかの通常より速いソートアルゴリズムにバインドクイックソートシェルソート、および木ソート
多項式または代数 ツリーに隣接する文法の構文解析。最大マッチングのための二部グラフLU分解で行列式見つける

L表記またはサブ指数 二次ふるい法または数体ふるい法を使用した数の因数分解

指数関数 動的計画法を使用して巡回セールスマン問題の(正確な)解決策を見つける; 力ずく検索を使用して、2つの論理ステートメントが同等であるかどうかを判別する
階乗 ブルートフォース検索を介し巡回セールスマン問題解決します。ポセットのすべての無制限の順列を生成します; 因子展開で行列式見つける; セットのすべてのパーティションを列挙する

声明 時々弱体化する 漸近的な複雑さのためのより単純な公式を導き出すこと。どんな場合でも のサブセットです のために したがってより大きな次数を持つ多項式と見なすことができます。

関連する漸近表記

Big Oは、コンピュータサイエンスで広く使用されています。他のいくつかの関連する表記法と一緒に、それはバッハマン-ランダウ表記法のファミリーを形成します。[要出典]

リトルオ表記

直感的には、アサーション " fx is ogx)) "(read " fx is little-o of gx ")は、gxfxよりもはるかに速く成長することを意味します。。前と同じようにしましょうF実数または複素数値の関数とすることがGの両方が正の一部無制限サブセットに定義され、実数値関数の実数、その結果GX)は、xの十分に大きいすべての値に対して厳密に正です1つは書く

すべての正の定数εに対して、次のような 定数Nが存在する場合

[16]

たとえば、

big-O表記の以前の定義とlittle-oの現在の定義の違いは、前者は少なくとも1つの定数Mに対して真でなければならないが、後者はすべての正の定数εに対して成り立つ必要があるということです[17]表記が行うこのように、O-あまり強い文を対応ビッグO記法より:少し-Oであり、すべての関数Gもの大きな-Oであり、Gの大きな-Oではなく、すべての機能gも少しです-gのo 例えば、 しかし

Gxは)ゼロで、または少なくとも特定の点を超えて非ゼロとなり、関係 と同等です

(そしてこれは実際、Landau [16]が最初にlittle-o表記を定義した方法です)。

Little-oは多くの算術演算を尊重します。例えば、

場合cがゼロ以外の定数であり、 それから 、 と
もしも それから

また、推移性の関係も満たします。

もしも それから

ビッグオメガ表記

別の漸近表記は 、「ビッグオメガ」を読んでください。[18]ステートメントには2つの広く互換性のない定義があります

なので

ここで、いくつかの実数、∞、または-∞であるF及びGは、の近傍で定義された実関数であり、そしてここで、gは、この周辺に正です。

Hardy–Littlewoodの定義は主に解析的整数論使用され、Knuthの定義は主に計算の複雑さの理論で使用されます。定義は同等ではありません。

Hardy–Littlewoodの定義

1914年、ゴッドフレイハロルドハーディジョンエデンサーリトルウッドが新しいシンボルを発表しました[19]これは次のように定義されます。

なので もしも

したがって の否定です

1916年に同じ著者が2つの新しいシンボルを導入しました 、次のように定義されます:[20]

なので もしも ;
なので もしも

これらの記号は、1924年に同じ意味でエドマンド・ランダウによって使用されました。[21] ランダウの後、表記法はこのように正確に再び使用されることはありませんでした。 なりました なりました [要出典]

これらの3つのシンボル 、 としても (つまり 両方とも満足している)、現在解析的整数論で使用されています。[22] [23]

簡単な例

我々は持っています

なので

より正確には

なので

我々は持っています

なので

より正確には

なので

しかし

なので

クヌースの定義

1976年にドナルドクヌースは彼の使用を正当化するための論文を発表しました-より強力なプロパティを表す記号。[24]クヌースは次のように書いている:「私がこれまでコンピュータサイエンスで見たすべてのアプリケーションにとって、より強い要件は...はるかに適切である」。彼は定義しました

コメント付き:「ハーディとリトルウッドの定義を変更しましたが 、彼らの定義が決して広く使われているわけではなく、彼らの定義が当てはまる比較的まれなケースで彼らが言いたいことを言う他の方法があるので、そうすることは正当であると感じます。」[24]

バッハマン-ランダウ表記のファミリー

表記 名前[24] 説明 正式な定義 限界の定義[25] [26] [27] [24] [19]
ビッグO; ビッグオー; ビッグオミクロン 漸近的にg(定数係数まで) によって上に制限されます
ビッグシータ fは、漸近的に gによって上下両方に制限されます。 (Knuth version)
Big Omega in complexity theory (Knuth) f is bounded below by g asymptotically
Small O; Small Oh f is dominated by g asymptotically
On the order of f is equal to g asymptotically
Small Omega f dominates g asymptotically
Big Omega in number theory (Hardy–Littlewood) is not dominated by g asymptotically

The limit definitions assume for sufficiently large . The table is (partly) sorted from smallest to largest, in the sense that (Knuth's version of) on functions correspond to on the real line[27] (the Hardy-Littlewood version of , however, doesn't correspond to any such description).

Computer science uses the big , big Theta , little , little omega and Knuth's big Omega notations.[28] Analytic number theory often uses the big , small , Hardy–Littlewood's big Omega (with or without the +, − or ± subscripts) and notations.[22] The small omega notation is not used as often in analysis.[29]

Use in computer science

Informally, especially in computer science, the big O notation often can be used somewhat differently to describe an asymptotic tight bound where using big Theta Θ notation might be more factually appropriate in a given context.[citation needed] For example, when considering a function T(n) = 73n3 + 22n2 + 58, all of the following are generally acceptable, but tighter bounds (such as numbers 2 and 3 below) are usually strongly preferred over looser bounds (such as number 1 below).

  1. T(n) = O(n100)
  2. T(n) = O(n3)
  3. T(n) = Θ(n3)

The equivalent English statements are respectively:

  1. T(n) grows asymptotically no faster than n100
  2. T(n) grows asymptotically no faster than n3
  3. T(n) grows asymptotically as fast as n3.

So while all three statements are true, progressively more information is contained in each. In some fields, however, the big O notation (number 2 in the lists above) would be used more commonly than the big Theta notation (items numbered 3 in the lists above). For example, if T(n) represents the running time of a newly developed algorithm for input size n, the inventors and users of the algorithm might be more inclined to put an upper asymptotic bound on how long it will take to run without making an explicit statement about the lower asymptotic bound.

Other notation

In their book Introduction to Algorithms, Cormen, Leiserson, Rivest and Stein consider the set of functions f which satisfy

In a correct notation this set can, for instance, be called O(g), where

[30]

The authors state that the use of equality operator (=) to denote set membership rather than the set membership operator (∈) is an abuse of notation, but that doing so has advantages.[6] Inside an equation or inequality, the use of asymptotic notation stands for an anonymous function in the set O(g), which eliminates lower-order terms, and helps to reduce inessential clutter in equations, for example:[31]

Extensions to the Bachmann–Landau notations

Another notation sometimes used in computer science is Õ (read soft-O): f(n) = Õ(g(n)) is shorthand for f(n) = O(g(n) logk g(n)) for some k.[32] Essentially, it is big O notation, ignoring logarithmic factors because the growth-rate effects of some other super-logarithmic function indicate a growth-rate explosion for large-sized input parameters that is more important to predicting bad run-time performance than the finer-point effects contributed by the logarithmic-growth factor(s). This notation is often used to obviate the "nitpicking" within growth-rates that are stated as too tightly bounded for the matters at hand (since logk n is always o(nε) for any constant k and any ε > 0).

Also the L notation, defined as

is convenient for functions that are between polynomial and exponential in terms of .

Generalizations and related usages

The generalization to functions taking values in any normed vector space is straightforward (replacing absolute values by norms), where f and g need not take their values in the same space. A generalization to functions g taking values in any topological group is also possible[citation needed]. The "limiting process" x → xo can also be generalized by introducing an arbitrary filter base, i.e. to directed nets f and g. The o notation can be used to define derivatives and differentiability in quite general spaces, and also (asymptotical) equivalence of functions,

which is an equivalence relation and a more restrictive notion than the relationship "f is Θ(g)" from above. (It reduces to lim f / g = 1 if f and g are positive real valued functions.) For example, 2x is Θ(x), but 2xx is not o(x).

History (Bachmann–Landau, Hardy, and Vinogradov notations)

The symbol O was first introduced by number theorist Paul Bachmann in 1894, in the second volume of his book Analytische Zahlentheorie ("analytic number theory").[1] The number theorist Edmund Landau adopted it, and was thus inspired to introduce in 1909 the notation o;[2] hence both are now called Landau symbols. These notations were used in applied mathematics during the 1950s for asymptotic analysis.[33] The symbol (in the sense "is not an o of") was introduced in 1914 by Hardy and Littlewood.[19] Hardy and Littlewood also introduced in 1916 the symbols ("right") and ("left"),[20] precursors of the modern symbols ("is not smaller than a small o of") and ("is not larger than a small o of"). Thus the Omega symbols (with their original meanings) are sometimes also referred to as "Landau symbols". This notation became commonly used in number theory at least since the 1950s.[34] In the 1970s the big O was popularized in computer science by Donald Knuth, who introduced the related Theta notation, and proposed a different definition for the Omega notation.[24]

Landau never used the big Theta and small omega symbols.

Hardy's symbols were (in terms of the modern O notation)

  and  

(Hardy however never defined or used the notation , nor , as it has been sometimes reported). Hardy introduced the symbols and (as well as some other symbols) in his 1910 tract "Orders of Infinity", and made use of them only in three papers (1910–1913). In his nearly 400 remaining papers and books he consistently used the Landau symbols O and o.

Hardy's notation is not used anymore. On the other hand, in the 1930s,[35] the Russian number theorist Ivan Matveyevich Vinogradov introduced his notation , which has been increasingly used in number theory instead of the notation. We have

and frequently both notations are used in the same paper.

The big-O originally stands for "order of" ("Ordnung", Bachmann 1894), and is thus a Latin letter. Neither Bachmann nor Landau ever call it "Omicron". The symbol was much later on (1976) viewed by Knuth as a capital omicron,[24] probably in reference to his definition of the symbol Omega. The digit zero should not be used.

See also

References and notes

  1. ^ a b Bachmann, Paul (1894). Analytische Zahlentheorie [Analytic Number Theory] (in German). 2. Leipzig: Teubner.
  2. ^ a b Landau, Edmund (1909). Handbuch der Lehre von der Verteilung der Primzahlen [Handbook on the theory of the distribution of the primes] (in German). Leipzig: B. G. Teubner. p. 883.
  3. ^ Mohr, Austin. "Quantum Computing in Complexity Theory and Theory of Computation" (PDF). p. 2. Retrieved 7 June 2014.
  4. ^ Landau, Edmund (1909). Handbuch der Lehre von der Verteilung der Primzahlen [Handbook on the theory of the distribution of the primes] (in German). Leipzig: B.G. Teubner. p. 31.
  5. ^ Michael Sipser (1997). Introduction to the Theory of Computation. Boston/MA: PWS Publishing Co. Here: Def.7.2, p.227
  6. ^ a b Cormen,Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. (2009). Introduction to Algorithms (3rd ed.). Cambridge/MA: MIT Press. p. 45. ISBN 978-0-262-53305-8. Because θ(g(n)) is a set, we could write "f(n) ∈ θ(g(n))" to indicate that f(n) is a member of θ(g(n)). Instead, we will usually write f(n) = θ(g(n)) to express the same notion. You might be confused because we abuse equality in this way, but we shall see later in this section that doing so has its advantages.
  7. ^ Cormen, Thomas; Leiserson, Charles; Rivest, Ronald; Stein, Clifford (2009). Introduction to Algorithms (Third ed.). MIT. p. 53.
  8. ^ Howell, Rodney. "On Asymptotic Notation with Multiple Variables" (PDF). Retrieved 2015-04-23.
  9. ^ a b N. G. de Bruijn (1958). Asymptotic Methods in Analysis. Amsterdam: North-Holland. pp. 5–7. ISBN 978-0-486-64221-5.
  10. ^ a b c Graham, Ronald; Knuth, Donald; Patashnik, Oren (1994). Concrete Mathematics (2 ed.). Reading, Massachusetts: Addison–Wesley. p. 446. ISBN 978-0-201-55802-9.
  11. ^ Donald Knuth (June–July 1998). "Teach Calculus with Big O" (PDF). Notices of the American Mathematical Society. 45 (6): 687. (Unabridged version)
  12. ^ Donald E. Knuth, The art of computer programming. Vol. 1. Fundamental algorithms, third edition, Addison Wesley Longman, 1997. Section 1.2.11.1.
  13. ^ Ronald L. Graham, Donald E. Knuth, and Oren Patashnik, Concrete Mathematics: A Foundation for Computer Science (2nd ed.), Addison-Wesley, 1994. Section 9.2, p. 443.
  14. ^ Sivaram Ambikasaran and Eric Darve, An Fast Direct Solver for Partial Hierarchically Semi-Separable Matrices, J. Scientific Computing 57 (2013), no. 3, 477–501.
  15. ^ Saket Saurabh and Meirav Zehavi, -Max-Cut: An -Time Algorithm and a Polynomial Kernel, Algorithmica 80 (2018), no. 12, 3844–3860.
  16. ^ a b Landau, Edmund (1909). Handbuch der Lehre von der Verteilung der Primzahlen [Handbook on the theory of the distribution of the primes] (in German). Leipzig: B. G. Teubner. p. 61.
  17. ^ Thomas H. Cormen et al., 2001, Introduction to Algorithms, Second Edition, Ch. 3.1
  18. ^ Cormen TH, Leiserson CE, Rivest RL, Stein C (2009). Introduction to algorithms (3rd ed.). Cambridge, Mass.: MIT Press. p. 48. ISBN 978-0-262-27083-0. OCLC 676697295.
  19. ^ a b c Hardy, G. H.; Littlewood, J. E. (1914). "Some problems of diophantine approximation: Part II. The trigonometrical series associated with the elliptic ϑ-functions". Acta Mathematica. 37: 225. doi:10.1007/BF02401834.
  20. ^ a b G. H. Hardy and J. E. Littlewood, « Contribution to the theory of the Riemann zeta-function and the theory of the distribution of primes », Acta Mathematica, vol. 41, 1916.
  21. ^ E. Landau, "Über die Anzahl der Gitterpunkte in gewissen Bereichen. IV." Nachr. Gesell. Wiss. Gött. Math-phys. Kl. 1924, 137–150.
  22. ^ a b Aleksandar Ivić. The Riemann zeta-function, chapter 9. John Wiley & Sons 1985.
  23. ^ Gérald Tenenbaum, Introduction to analytic and probabilistic number theory, Chapter I.5. American Mathematical Society, Providence RI, 2015.
  24. ^ a b c d e f Knuth, Donald (April–June 1976). "Big Omicron and big Omega and big Theta" (PDF). SIGACT News. 8 (2): 18–24. doi:10.1145/1008328.1008329. S2CID 5230246.
  25. ^ Balcázar, José L.; Gabarró, Joaquim. "Nonuniform complexity classes specified by lower and upper bounds" (PDF). RAIRO – Theoretical Informatics and Applications – Informatique Théorique et Applications. 23 (2): 180. ISSN 0988-3754. Retrieved 14 March 2017.
  26. ^ Cucker, Felipe; Bürgisser, Peter (2013). "A.1 Big Oh, Little Oh, and Other Comparisons". Condition: The Geometry of Numerical Algorithms. Berlin, Heidelberg: Springer. pp. 467–468. doi:10.1007/978-3-642-38896-5. ISBN 978-3-642-38896-5.
  27. ^ a b Vitányi, Paul; Meertens, Lambert (April 1985). "Big Omega versus the wild functions" (PDF). ACM SIGACT News. 16 (4): 56–59. CiteSeerX 10.1.1.694.3072. doi:10.1145/382242.382835. S2CID 11700420.
  28. ^ Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2001) [1990]. Introduction to Algorithms (2nd ed.). MIT Press and McGraw-Hill. pp. 41–50. ISBN 0-262-03293-7.
  29. ^ for example it is omitted in: Hildebrand, A.J. "Asymptotic Notations" (PDF). Department of Mathematics. Asymptotic Methods in Analysis. Math 595, Fall 2009. Urbana, IL: University of Illinois. Retrieved 14 March 2017.
  30. ^ Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. (2009). Introduction to Algorithms (3rd ed.). Cambridge/MA: MIT Press. p. 47. ISBN 978-0-262-53305-8. When we have only an asymptotic upper bound, we use O-notation. For a given function g(n), we denote by O(g(n)) (pronounced "big-oh of g of n" or sometimes just "oh of g of n") the set of functions O(g(n)) = { f(n) : there exist positive constants c and n0 such that 0 ≤ f(n) ≤ cg(n) for all nn0}
  31. ^ Cormen,Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. (2009). Introduction to Algorithms (3rd ed.). Cambridge/MA: MIT Press. p. 49. ISBN 978-0-262-53305-8. When the asymptotic notation stands alone (that is, not within a larger formula) on the right-hand side of an equation (or inequality), as in n = O(n²), we have already defined the equal sign to mean set membership: n ∈ O(n²). In general, however, when asymptotic notation appears in a formula, we interpret it as standing for some anonymous function that we do not care to name. For example, the formula 2n2 + 3n + 1 = 2n2 + θ(n) means that 2n2 + 3n + 1 = 2n2 + f(n), where f(n) is some function in the set θ(n). In this case, we let f(n) = 3n + 1, which is indeed in θ(n). Using asymptotic notation in this manner can help eliminate inessential detail and clutter in an equation.
  32. ^ Introduction to algorithms. Cormen, Thomas H. (Third ed.). Cambridge, Mass.: MIT Press. 2009. p. 63. ISBN 978-0-262-27083-0. OCLC 676697295.CS1 maint: others (link)
  33. ^ Erdelyi, A. (1956). Asymptotic Expansions. ISBN 978-0-486-60318-6.
  34. ^ E. C. Titchmarsh, The Theory of the Riemann Zeta-Function (Oxford; Clarendon Press, 1951)
  35. ^ See for instance "A new estimate for G(n) in Waring's problem" (Russian). Doklady Akademii Nauk SSSR 5, No 5-6 (1934), 249–253. Translated in English in: Selected works / Ivan Matveevič Vinogradov; prepared by the Steklov Mathematical Institute of the Academy of Sciences of the USSR on the occasion of his 90th birthday. Springer-Verlag, 1985.

Further reading

External links