algorithm - 一种基于有限信息的序列生成算法

标签 algorithm graph sequence

假设我们有一组字母,例如{A,B,C,D,E,F} 我们要按顺序排列,受一组规则约束。

我们不知道序列是什么样的,但我们知道序列中有哪些字母。我们有关于字母对排序的信息。是否有任何众所周知的算法或方法可以找到满足给定信息的可能序列?

例如,假设我们有以下信息:

  • 序列中有6个字母{A,B,C,D,E,F}
  • E在B之后
  • C在E之后
  • A在D之后
  • F在B之后
  • D在E之后

满足这些条件的可能序列是什么?

最佳答案

构建有向图G(V,E)
V = {a,b,c,d,e} 你的字母
对于 x 在 y 之前的任何对,E = (x,y)。

然后使用拓扑排序(read more here)(visualization here)

关于algorithm - 一种基于有限信息的序列生成算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37331004/

相关文章:

c# - C# 中的斐波那契、二进制或二项式堆?

r - 如何使零刻度出现在 R 图中的左角?

algorithm - 如何检测添加 block 后永远不会成为最短路径一部分的网格上的正方形?

mysql - 主键生成 MySQL Hibernate

android - 登录过程应该如何?

algorithm - 常数空间和线性时间平衡括号算法存在吗?

c++ - 测试图是否是树

recursion - 使用LISP将列表递归地分成两个

oracle11g - Oracle 中序列的同义词

python - Python 中的快速泊松圆盘采样 [Robert Bridson]