【发布时间】:2014-08-28 20:57:55
【问题描述】:
计算floor(log_2(x)) 可以通过计算存在many 快速算法的零的数量来完成。
当x 是一个覆盖所有可能值的 64 位无符号整数时,是否有任何类似的技巧来计算 floor(log_{2^(1/4)}(x))?
由于log_{2^(1/4)}(x)=4*log_2(x)=log_2(x^4),这相当于为floor(4*log_2(x))或floor(log(x^4))找到一个有效的算法。
【问题讨论】:
-
log_{2^(1/4)}(x) = log_2(x)/log_2(2^(1/4)) = log_2(x)/(1/4) = 4 log_2(x)
-
哦,哎呀,我忘记了分母中的 2^。对不起!
标签: algorithm bit-manipulation numerical-methods