在摊销分析中使用潜力和会计方法

Posted

技术标签:

【中文标题】在摊销分析中使用潜力和会计方法【英文标题】:Using the potential and the accounting methods in amortized analysis 【发布时间】:2021-06-02 07:43:58 【问题描述】:

我已阅读有关会计和潜在方法的信息,但我仍然无法解决这些问题:

【问题讨论】:

您必须提供您尝试过的内容并提出更具体的问题。还提供可搜索的文本,而不是图片或扫描,除了模式/图表。换句话说,表现出一些努力。 【参考方案1】:

直觉

通过分析每个操作的昂贵案例和便宜案例,您可以了解如何对每个操作收费(然后您可能需要一些小修复来“修复”数字)

通过查看数据结构的重要参数,您可以构建一个潜在的函数(这里例如它是 s2 中元素的数量)

此外,在这里查看许多示例确实很有帮助

核算方法:

让每次插入收取两枚硬币:一枚用于从 s2 弹出元素,第二枚用于将元素插入到 s1 并且让我们为每次删除收取一枚硬币,该硬币将用于从 s1 中删除该元素。

然后请注意,银行中的信用不能为负数,因为如果 s1 不为空,那么我们只需支付操作的实际成本(这是从 s1 中唯一的删除),如果s1 为空,然后操作从 s2 弹出并插入到我们已经收费的 s1。 (需要注意的是,我们假设我们从空数据结构开始,或者,我们对数据结构的每个初始状态都获得了适当的信任

现在您可以看到,对于每组操作,我们的总信用 3n 涵盖了操作的实际成本(我们获得了 s2 中剩余元素的信用边际),因此这些是有效的摊销界限。

要用势函数求解,让我们考虑函数:

Potential(DataStructure) = 2 * s2 中的元素个数

回想一下,我们是这样计算的:

OP.A 的摊余成本 = OP.A 的实际成本 + 潜力(DS after)-Potential(DS before)

所以我们得到(在 k 中表示 s2 中的元素数):

对于插入: 1 + 2(k+1)-2k = 3

为了便宜的删除: 1 + 2k - 2k = 1

对于昂贵的删除: 1+2k + 0 - 2k = 0(实际成本为 1+2k,因为我们从 s2 弹出并插入每个元素到 s1,然后从 s1 弹出一个元素)

【讨论】:

以上是关于在摊销分析中使用潜力和会计方法的主要内容,如果未能解决你的问题,请参考以下文章

孙宇晨的波场币能买吗?波场币未来潜力前景分析

如何充分利用 OneNote,发挥它的全部价值和潜力

数字孪生如何实现?有哪些潜力?

全球及中国地板市场现状分析及投资潜力预测报告2021-2027年

潜力新星-资讯篇-第27期BitcoinZ最新资讯:将Equihash算法升级,抵抗矿机

一文看懂:边缘计算究竟是什么?为何潜力无限?