Algorithm 修正增量函数的摊余成本

Algorithm 修正增量函数的摊余成本,algorithm,data-structures,amortized-analysis,Algorithm,Data Structures,Amortized Analysis,这样,对于n位二进制字符串A[0…n-1],其中A[0]是最低有效位,[n-1]是最高有效位,增量算法是: Increment(A,n): i←0 while i<k and A[i]=1 do A[i] ← 0 i ← i+1 if i < k then A[i] ← 1 增量(A,n): 我←0 当i如果我们将计数器从0增加到2^m,每个位翻转多少次 第0位翻转2m次。第1位翻转2m-1次。但是2次翻转2米2倍,等等 如果我们计算总成本: 第0位成本为1*2m

这样,对于n位二进制字符串A[0…n-1],其中A[0]是最低有效位,[n-1]是最高有效位,增量算法是:

Increment(A,n):
i←0
while i<k and A[i]=1 do
   A[i] ← 0
   i ← i+1
if i < k then
   A[i] ← 1
增量(A,n): 我←0
当i如果我们将计数器从0增加到2^m,每个位翻转多少次

第0位翻转2m次。第1位翻转2m-1次。但是2次翻转2米2倍,等等

如果我们计算总成本:

第0位成本为1*2m。第1位成本为2*2m=2m。第2位成本为4*2m-2=2m,等等

每一个改变的比特都有相同的总成本,并且有m+1比特改变,所以总成本(m+1)为2m

如果增量数量n=2m,则每个增量的摊余成本为

(m+1)2m/n

=((log2n)+1)*n/n


=1+log2n

这是否回答了您的问题?