web-dev-qa-db-ja.com

O(log * N)とは何ですか?

O(log* N)とは何ですか?

私はビッグオー、log*は不明です。

71
Timmy

O( log* N )は " 反復対数 ":

コンピューターサイエンスでは、n *の反復対数、log * n(通常は「ログスター」と読みます)は、結果が1以下になる前に対数関数を繰り返し適用する必要がある回数です。

79
Larry

_log* N_ビットは反復アルゴリズムであり、_log N_よりも非常にゆっくりと成長します。基本的には、答えが1未満になるまで繰り返し答えを「記録」し続け(例:log(log(log(...log(N))))、log()にした回数が答えです。

とにかく、これはStackoverflowに関する5年前の質問ですが、コードはありませんか?(!)

_public double iteratedLogRecursive(double n, double b)
{
    if (n > 1.0) {
        return 1.0 + iteratedLogRecursive( Math.Log(n, b),b );
    }
    else return 0;
}

public int iteratedLogIterative(double n, double b)
{
    int count=0;
    while (n >= 1) {
        n = Math.Log(n,b);
        count++;
    }
    return count;
}
_
18
Dan W

log *(n)-"log Star n"として知られている"Iterated logarithm"

単純なWordでは、log *(n)= log(log(log(.....(log *(n))))と仮定できます

log *(n)は非常に強力です。

例:

1) Log *(n)= 5ここで、n = atom in universe

2) 3色を使用したツリーの色付けはlog *(n)で行うことができますが、ツリー2の色付けは十分ですが、複雑さはO(n)となります。

ユークリッド最小全域木を知っている点の集合のドロネー三角形分割を見つける:ランダム化されたO(n log * n)時間。

7
Manish Kumar