您有正确的想法;对于任何基数x,
x ^ floor( log_x(n) )就是您想要的。(其中
log_x表示’log to the base x
‘)
在C#中:
static double roundbaseX(double num, double x){ return Math.Pow(x, Math.Floor(Math.Log(num, x)));}如果您不能将对数取到任意基数,请使用以下公式:
log_x(n) = log(n) / log(x)

您有正确的想法;对于任何基数x,
x ^ floor( log_x(n) )就是您想要的。(其中
log_x表示’log to the base x
static double roundbaseX(double num, double x){ return Math.Pow(x, Math.Floor(Math.Log(num, x)));}如果您不能将对数取到任意基数,请使用以下公式:
log_x(n) = log(n) / log(x)