C# 如何生成具有哈密顿路径的图?

C# 如何生成具有哈密顿路径的图?,c#,graph,graph-theory,C#,Graph,Graph Theory,我需要为我的下一个项目创建一个图形生成器。一般来说,算法都是试图在图中找到一个。所以我可以创建一个图生成器,然后我可以决定一个图是否有哈密顿路径。如果没有,我可以重新生成图形,但这不是一个很酷的方法 我希望生成的图始终具有哈密顿路径 另外,我的图有两个满足两个特定条件 顶点只能有2、3或4条边 可能的顶点数遵循以下顺序:6、10、15、20、25…n-5、n其中n%5=0 你能解释一下我应该如何开始以及我应该遵循哪种方式来轻松实现这一点吗?如果你想确保你的图有一个哈密顿路径,首先创建一个由连

我需要为我的下一个项目创建一个
图形生成器。一般来说,算法都是试图在图中找到一个。所以我可以创建一个图生成器,然后我可以决定一个图是否有哈密顿路径。如果没有,我可以重新生成图形,但这不是一个很酷的方法

我希望生成的
图始终具有哈密顿路径

另外,我的图有两个满足两个特定条件

  • 顶点只能有2、3或4条边
  • 可能的顶点数遵循以下顺序:6、10、15、20、25…n-5、n其中
    n%5=0

你能解释一下我应该如何开始以及我应该遵循哪种方式来轻松实现这一点吗?

如果你想确保你的图有一个哈密顿路径,首先创建一个由连接所有顶点的单一路径组成的图。这将是你们的哈密顿路径

一旦哈密顿路径的边添加到图中,继续生成连接随机顶点对的附加边,直到满足图上的附加条件


结果保证有一个哈密顿路径,因为你的初始图形有它。

如果你想确保你的图形有一个哈密顿路径,首先创建一个由连接所有顶点的单一路径组成的图形。这将是你们的哈密顿路径

一旦哈密顿路径的边添加到图中,继续生成连接随机顶点对的附加边,直到满足图上的附加条件


结果保证有一个哈密顿路径,因为你的初始图有它。

你试过什么吗?有什么让这很难做到的吗?你可以看看msdn中关于图表的部分,解释如何开始有点含糊不清。考虑到你的标签,一个有效的答案可能是“读一本关于C#编程的书,学习离散数学课程”。不过,您似乎真正想要的是讨论或预写函数,堆栈溢出不支持这两种函数。最好先进行一些编程工作,然后就已经编写的内容发布请求帮助的帖子。@Batavia这是生成图形的完美开端。但我怎么知道是否存在哈密顿路径呢?@mah你说得对。我会在5分钟后把问题删除。这看起来太复杂了。我甚至不能启动。我唯一想要的是,我不想检查是否有哈密顿路径。所有生成的图形都应该已经有了它。您尝试过什么吗?有什么让这很难做到的吗?你可以看看msdn中关于图表的部分,解释如何开始有点含糊不清。考虑到你的标签,一个有效的答案可能是“读一本关于C#编程的书,学习离散数学课程”。不过,您似乎真正想要的是讨论或预写函数,堆栈溢出不支持这两种函数。最好先进行一些编程工作,然后就已经编写的内容发布请求帮助的帖子。@Batavia这是生成图形的完美开端。但我怎么知道是否存在哈密顿路径呢?@mah你说得对。我会在5分钟后把问题删除。这看起来太复杂了。我甚至不能启动。我唯一想要的是,我不想检查是否有哈密顿路径。所有生成的图形都应该已经有了它。