いくつかの対数関数の Big-O 表記を識別してほしいというインタビューの質問を受けました。機能は次のとおりです。
f(x) = ログ5 (x)
f(x) = log(x 5 )
f(x) = log(6*log x)
f(x) = ログ (ログ x)
1 番目と 2 番目の Big-O は等価ではなく、3 番目と 4 番目も等価ではないと言われました。なぜそれらが同等ではないのか、また Big-O とは何なのかを説明できる人はいますか?
したがって、O(log log log log log x)、O(log x)、O(log log x)、O(log log x) という 3 つの異なる Big-O クラスがあります。
面接官が 3 と 4 が違うと言った場合は、彼が間違っているか、あなたが質問を覚えていないかのどちらかです (常に起こります)。
これは数学の問題です:
だからビッグオーは
したがって、(1) と (2) は同等ではありませんが、(3) と (4) は同等です (ただし、(1) と (2) の両方とは異なります)。
f(x) = log^5(n)
f(x) = log(n^5) -> 5 log(n)
O(5 log(n)) < O(log(n)^5)
f(x) = log(6*log n) -> log(6)+log(log(n))
f(x) = log(log n)
log(log n) < log(6) + log(log(n))
、ただし、log(6) は定数であるため、同じ O を持ちます
f(n)
ではなく、という意味だと思いますf(x)
。1 と 2 の場合、は、 whilelog^5(n)
と同等です。O(log log log log log(n))
log(n^5) = 5 log(n) = O(log n)
3と4については、私は同意しません。log(6*log n) = log(6) + log(log n) = O(log log n)
、これは 4 - と同じO(log log n)
です。