bit 是一种迭代算法,它的log* N增长非常缓慢,比log N. 您基本上只是反复“记录”答案,直到它低于一个(例如:)log(log(log(...log(N))),而您必须记录的次数log()就是答案。
无论如何,这是 Stackoverflow 上的一个五年前的问题,但没有代码?(!)让我们解决这个问题 - 这是递归和迭代函数的实现(它们都给出相同的结果):
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;
}