アルゴリズムと計算量の問題
を 以上の整数とし、 の関数として次の つの計算時間を考える( は自然対数)。
これらは、ある並べ方 について
を満たす。添字の組 を求めよ。ここで は を表す。
この問題で使うもの
- 計算量のオーダーの比較(説明と入口の問題)
この問題を解けるようになるまで(19 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
「計算量のオーダーの比較」を使います。4 つの関数はどれも正なので、自然対数をとって指数の部分の大きさを比べましょう。
ヒント 2
なら です。対数をとると、, , , になります。
ヒント 3
を とおくと、, , は多項式・対数の比較で順序がわかります。残りは と のどちらが速く増えるかを、 の極限で調べましょう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
どの関数も正なので、自然対数をとって比べます。
手順 1:対数をとる
手順 2:比べ方の原理
ならば
なので です。そこで、対数の差が に発散するかを調べます。
手順 3:隣どうしを比べる
- と : とおくと、。 なので、これは に発散します。よって 。
- と :。よって 。
- と :。 とおくと (指数関数は多項式より速く増える)なので、括弧内は に収束し、全体は に発散します。よって 。
手順 4:並べる
以上より
なので、 です。
別解
各関数の自然対数を比べる。log f1 = 100 log n、log f2 = sqrt(n) log 2、log f3 = (log n)^2、log f4 = 5 log log n。n→∞ で、log log n = o(log n)、log n = o((log n)^2)、(log n)^2 = o(sqrt(n)) なので log f4 < log f1 < log f3 < log f2 の順に増加が速い。さらに、log f_i - log f_j → -∞ となるので f_i/f_j → 0 であり、o の関係が成り立つ。したがって f4 = o(f1)、f1 = o(f3)、f3 = o(f2)。検算: n=e^100 のとき log f1=10000, log f3=10000 で並ぶが、それ以降は f3 が上回る。f2 は sqrt(n) が極めて大きく最大。