栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用哪种算法确定使系统进入“零”状态所需的最少操作数?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用哪种算法确定使系统进入“零”状态所需的最少操作数?

实际上,这看起来像是双重录入会计概念可以帮助完成的工作。

您的交易可以构造为簿记条目,因此:

    Alice  Bill  Charles  BalanceAlice   -> Bill    $10      10    10-       0        0Bill    -> Alice    $1       9     9-       0        0Bill    -> Charles  $5       9     4-       5-       0Charles -> Alice    $5       4     4-       0        0

那里有。在每笔交易中,您要贷记一个分类帐帐户,然后借记另一个帐户,以使余额始终为零。最后,您只需算出要应用于每个帐户的最小交易数即可将其恢复为零。

对于这个简单的案例,这是从Bill到Alice的简单4美元转帐。您需要做的是,每增加一笔交易,至少将一个帐户(最好是两个)减少到零。假设您遇到了更复杂的事情:

    Alice  Bill  Charles  BalanceAlice   -> Bill    $10      10    10-       0        0Bill    -> Alice    $1       9     9-       0        0Bill    -> Charles  $5       9     4-       5-       0Charles -> Alice    $5       4     4-       0        0Charles -> Bill     $1       4     5-       1        0

那么所需的交易将是:

Bill     -> Alice   $4       0     1-       1        0Bill     -> Charles $1       0     0        0        0

不幸的是,在某些州,这种简单的贪婪策略无法产生最佳解决方案(

j_random_hacker
为指出这一点而赞誉)。一个例子是:

      Alan  Bill  Chas  Doug  Edie  Fred  BalBill->Alan   $5    5-    5     0     0     0     0    0Bill->Chas  $20    5-   25    20-    0     0     0    0Doug->Edie   $2    5-   25    20-    2     2-    0    0Doug->Fred   $1    5-   25    20-    3     2-    1-   0

显然,这可以逆转为四步(因为要到达那只需要四步),但是,如果您不明智地选择了第一步

(Edie->Bill $2)
,那么您将获得的最低限度是五步。

您可以使用以下规则解决此 特定 问题:

  • (1)如果可以消灭两个天平,请执行此操作。
  • (2)否则,如果您可以消灭一个天平并设置自己以下一步消灭两个天平,请执行此操作。
  • (3)否则,请清除任何一种余额。

这将导致以下顺序:

  • (a)[1]不适用,[2]可通过实现
    Alan->Bill $5
  • (b)[1]可以用完成
    Chas->Bill $20
  • (c)和(d),与道格,伊迪和弗雷德类似的推理,总共进行了四步。

但是,这仅是因为可能性很小。随着人数的增加和小组之间的相互关系变得越来越复杂,您很可能需要进行详尽的搜索,以找到所需的最小移动次数(基本上是上述规则1、2和3,但已扩展以处理更多的深度)

我认为这是在所有情况下为您提供最少数量交易的条件。但是,可能不需要 最佳
答案(在这种情况下,最好的意思是最大“每单位成本”)。可能即使是基本的1/2/3规则集也可以为您的目的提供足够好的答案。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449390.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号