我迷失在试图找出公式给我正确的答案。
假设X = 10,我必须找到一个数字n,使得天花板是天花板[n lg n]
因此,对于X = 10,经过反复试验后,我得到4.56 lg 4.56。
答案 0 :(得分:1)
您可以根据Lambert W function解决此问题。你想要的数字是log(W(x)),假设你的对数是自然的。
答案 1 :(得分:1)
@dmuir在正确的轨道上,您可以使用Lambert W function来解决n * log N = X.例如使用身份
W(n * log n)= log n
你可以推导出n = e W(X)。
对于X = 10,W(X)= 1.745528002,所以n = e 1.745528002 = 5.72892556
如果按lg n表示日志到基数2那么上面的内容就变成了
n = e W(X * log(2)) = e W(X * 0.69314718055)
请注意,Lambert W函数不能用基本函数表示。因此像@Juan Lopes这样的解决方案可能同样有效。
答案 2 :(得分:0)
我不知道这个封闭的公式,但是你不能做一个像这样的简单二进制搜索吗?
double solve(double a, double b, double x) {
if (abs(a-b) < 1e-6) return a;
double n = (a+b)/2;
if (n*log2(n) > x)
return solve(a, n, x);
else
return solve(n, b, x);
}
double solve(double x) {
return solve(0, x, x);
}