1
我想知道是否有恒定时间算法或某种x86征,用于计算这样的:2系列的有效幂:(2^n)+(2 ^(n-1))+(2 ^(n-2))
鉴于 'N',从 'N至0' 计算该系列的2的幂的总和:
2^N + 2 ^(N-1)+ 2 ^( (n-2)+ 2 ^(n-3)... 2 ^(0)
我想知道是否有恒定时间算法或某种x86征,用于计算这样的:2系列的有效幂:(2^n)+(2 ^(n-1))+(2 ^(n-2))
鉴于 'N',从 'N至0' 计算该系列的2的幂的总和:
2^N + 2 ^(N-1)+ 2 ^( (n-2)+ 2 ^(n-3)... 2 ^(0)
几何系列的结果就像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)
是的,有一个!结果是2 ^(n + 1)-1 = 1U <<(n + 1)-1'。 – Franck
手工完成前四五步,您会注意到一种模式。或者用二进制写出总和,更明显的模式。 – Mat
啊,那很完美。请填写答案,我会接受 – user1043761