我经常阅读算法教科书Cormen,Liserson,Rivest和Stein。
摊销分析是其中有趣的一章。当选择电位函数时,二进制计数器是一个困难的例子。我想知道如果计数器的3的幂具有某些系数(例如x1 * 1 + x2 * 3 + x3 * 9 + ...)。
在这种情况下如何确定电位函数?
答案 0 :(得分:0)
要证明增加基数为3的计数器需要固定的摊销时间,可以使用电位方法,将当前值中的2s用作电位函数。
增量操作可以分为两部分:
该值末尾的连续2s更改为0。
这2s左边的第一个数字递增。
步骤(1)所做的工作与从状态中移除的2秒成比例。
这两个2s中的每一个都由上一个操作的Step(2)进行相加,这需要固定的时间,并且最多可以加2。
让Φ为当前状态下的2s。