【问题标题】:Building Combinations of Items with Specific joining rules建立具有特定连接规则的项目组合
【发布时间】:2010-11-11 05:31:53
【问题描述】:

我正在尝试生成具有特定属性的一组对象的所有可能组合。问题是这些对象只能以特定方式组合,并且当您将对象组合作为一个整体“验证”时,它必须满足特定条件。

对象数据存储在 SQL Server 数据库中(我可以完全控制它,因此如果数据需要以不同的方式排列,它可以更改)

我正在处理的对象的简化版本是

class Item { 
public string Start {get;set;}
public string End {get;set;}
}

如果我有这些对象的列表,例如:

  1. 项目{开始 = “A”,结束 = “B”}
  2. 项目{开始 = “B”,结束 = “C”}
  3. 项目{开始 = “B”,结束 = “A”}

这组项目的结果输出将是:

A -> B
B -> C
B -> A
A -> B -> C

例如
第 1 项可以与第 2 项组合产生 A -> B -> C。
但是第 2 项不能与第 3 项合并,因为第 2 项的结束值与第 3 项的开始值不匹配。

还有一些“整体”规则,其中 Start 和 Ends 的整体组合不能导致项目进行: A -> B -> A
(第 1 项和第 3 项)。

最多可以将这些项目中的 5 个连接在一起。

是否有任何通用的方法或算法可以达到相同的结果?

任何帮助(甚至是指针)都将不胜感激。

【问题讨论】:

  • 谷歌搜索“有向图”和循环,你的手中有一个完整的世界

标签: .net algorithm conditional combinations


【解决方案1】:

如果您想对数据库中的查询执行此操作,可以查看Recursive Queries Using Common Table Expressions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 2016-06-24
    相关资源
    最近更新 更多