2系列的有效功率:(2 ^ n)+(2 ^(n-1))+(2 ^(n-2))

时间:2016-10-30 17:46:33

标签: c++ x86

我想知道是否有一个常数时间算法或某种x86内在函数用于计算:

鉴于' n',计算从' n到0'的一系列权力之和:

2 ^ n + 2 ^(n-1)+ 2 ^(n-2)+ 2 ^(n-3)... 2 ^(0)

1 个答案:

答案 0 :(得分:2)

几何系列的结果如k ^ n + k ^(n-1)+ k ^(n-2)+ k ^(n-3)... k ^(0)是(k ^( n + 1) - 1)/(k-1)。

如果k = 2,这甚至更简单:结果是2 ^(n + 1) - 1;它经常被使用。

您可以使用左移操作(例如

)在恒定时间内计算它
(1U << (n+1)) - 1

~(~0U << n)