1

我在选择用于帮助识别资源和资源之间转换的数据结构时遇到问题。定义图表后,我想对资源之间的转换进行分析,以确定哪些输入可以产生哪些输出。

例如,我们可以以传统货币为例:

  • 美元 -> 3:2 -> 欧元
  • 欧元 -> 2:3 -> 美元
  • 欧元 -> 1:100 -> 日元
  • 日元 -> 95:1 -> 欧元
  • 日元 -> 50:1 -> T恤
  • 美元 -> 2:1 -> 糖果棒

典型的用例是获取一些起始资源,例如 5 美元和 100 日元,并确定这些资源可以转换成什么:多少条糖果?怎么有 T 恤?如果有数百个资源,每个资源都可能有几十个到其他资源的转换,那么图表会复杂得多。

谢谢你的想法!

4

1 回答 1

2

这听起来像是标准图表的问题。

让每个资源为一个节点,如果它们之间有过渡,则连接两个节点,边权重为过渡比率。

这些边可能需要被定向,并且,如果转换是反向的,则有 2 个边,一个在任一方向。或者,如果转换是逆向的,您可以有一个无向图并将边权重定义为从“最小”节点到“最大”节点的转换比率(您需要对节点进行一些可能的任意排序)。“转换是逆向的”我的意思是,如果您从任何资源转到任何其他资源,您也可以再次返回,如果这样做,您将获得与最初开始时相同的数量(尽管这并没有从示例中似乎不成立)。

然后你可能不得不使用广度优先搜索(或类似的)来确定从一个资源到另一个资源。

就 SQL 而言,一种可能的结构如下:

Resource
  ID, ...

Transition
  ResourceID1, ResourceID2, Cost
于 2013-10-13T14:34:15.107 回答