Big-O記法の理論の紹介

Big-O表記の理論の紹介

1. 前書き

この記事では、introduction to the mathematics of big-O notation, as well as show an example of a big-O proof.を指定します

2. 正式な定義

Definition:f(x) = O(g(x))は、すべてのx ≥ x1に対して0 ≤ f(x) ≤ cg(x)が存在するように、x1cの2つの正の定数が存在することを意味します。

3. 最初の正の定数:x1

f(x) = O(g(x))と言うときは、f of x is big-O g of x“.と言います

等号に惑わされないでください。f(x)は関数で、O(g(x))はセットです。 セットに等しい関数を持つことはできません。 それは、地球が太陽系に等しいと言っているようなものです。 それは、太陽系(を構成する惑星のセット)の地球belongsに似ています。 同様に、f(x) belongs in a set of functions called O(g(x))xbig-Og)。

現在、f(x)g(x)の2つの関数があります。 関数grow at different speeds.たとえば、2次関数は1次関数よりも速く成長します。 しかし、sometimes, it takes some time for the quadratic to catch up!

たとえば、a(x) = 2x2 + 2x + 1b(x) = 10xがある場合、a(1) = 5b(1) = 10があります。 しかし、今、x = 15を選択するとします。 これで、a(15) = 450 + 30 + 1 = 481b(x) = 150ができました。 さらに、for any value greater than x = 15, say x = 20, a(x) will be bigger than b(x).(正式な定義を参照する良い機会です。これはx ≥ x1の部分です)。

big-Oを正式に理解する場合に重要なのは、we don’t particularly care at which point a(x) began outgrowing b(x).がそうだったということであり、それ以降は、b(x)よりも大きくなり続けます。

4. 2番目の正の定数:c

a(x)b(x). に追いつくまでにどのように時間がかかるかを上で見ました。最終的にはそうなりましたが、時間がかかりました。

最終的に速く成長する理由は、2x2 termのためです。 または、より正確には、そのx2部分です。 This tells us that a(x) = O(x2).元の定義の記号を使用:f(x) = a(x)およびg(x) = x2

big-Oの場合、a(x)の他の項、または2x2項の定数2は関係ありません。

セクション2の定義をもう一度見てみると、ここで定数cが使用されます。 We can scale g(x) by any positive constantf(x)がスケーリングされたバージョンよりも小さいままである限り(特定のポイントを過ぎて、x ≥ x1)。

d(x) = 3x3 + 2x + 10,を取る場合は、cx1の値を見つける必要があります。これにより、x1.より大きいすべての値に対してd(x) ≤ cx3が使用されます。セクション4で行います。

5. ピースをまとめる

f(x) = O(g(x))を証明するには、すべてのx ≥ x1に対して0 ≤ f(x) ≤ cg(x)が使用されるように、cx1の2つの正の定数を見つける必要があります。 We need to find values for c and x1 such that the inequality holds.

つまり、特定のポイントを過ぎると、スケーリングされたバージョンのg(x)は常にf(x)よりも大きくなります。

6. 例

d(x) = 3x3 + 2x + 10とします。

d(x) = O(x3)であることを証明したいとします。 つまり、すべてのx ≥ x1に対して0 ≤ d(x) ≤ cx3 となるように、2つの正の整数cx1を見つける必要があります。

ええと、d(x) = 3x3 + 2x + 10 ≤ 3x3 + 2x3 + 10x3 = 15x3

so,

d(x) ≤ 15x3

したがって、x1 = 1 c = 15, thenを設定すると、任意のx ≥ x1, 0 ≤ d(x) ≤ cx3に対してそれが得られます。 したがって、d(x) = O(x3)

上記の条件を満たすx1cの他の値を見つけることができたはずです。 重要なのは、there exist values of x1 and c which satisfy the condition.

7. 結論

この記事では、introduction to the theory of big-O notationに焦点を当てました。

このトピックのより実用的な見方は、found hereです。