首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >债务优化算法

债务优化算法
EN

Stack Overflow用户
提问于 2016-03-24 10:55:49
回答 2查看 412关注 0票数 0

你可能会提出什么算法来解决下一个任务?或者其他已知的优化任务类似于它?

你有N个人(N > 2)。有些人欠别人钱。你需要优化他们之间的资金流。

示例:

  • P1欠P2 30美元
  • P1欠P3 10美元
  • P2欠P3 20美元

优化将是:

  • P1欠P2 10美元
  • P1欠P3 30美元
EN

回答 2

Stack Overflow用户

发布于 2016-03-25 13:45:23

我想我找到了一个很好的解决办法。

  1. 计算每个人的最终状态(图中的节点)。您可以通过将所有收入值之和给这个人/节点并减去所有的结果来做到这一点。在我的例子中: 地位:
代码语言:javascript
复制
- P1: -40 USD
- P2: 10 USD
- P3: 30 USD

  1. 把最小的数字(总是负的)和最大的数字(总是正数)匹配起来,并更新最终雕像的列表。例如: 匹配:
代码语言:javascript
复制
- P1 owes P3: 30 USD.

地位:

代码语言:javascript
复制
- P1: -10 USD
- P2: 10 USD

  1. 重复2,直到所有匹配(状态列表为空)。 匹配:
代码语言:javascript
复制
- P1 owes P3: 30 USD
- P1 owes P2: 10 USD

票数 0
EN

Stack Overflow用户

发布于 2018-01-02 16:16:15

如果您仍然在寻找解决方案,这里是来自其他StackOverflow问题的答案,它深入到所有解决方案的可能性中。链接:Algorithm to simplify a weighted directed graph of debts

第一个答案给出了算法的一些想法。但是第二个答案与关于这个问题的深入的学术论文有联系。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36198509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档