多语言展示
当前在线:1436今日阅读:176今日分享:34

用Mathematica绘制图中的欧拉回路

欧拉回路是什么?直白的说,就是一笔画,就是寻找一种路径,可以把图中的每一条边恰好走过一遍,且每条边只准通过一次。本文,就用Mathematica来寻找图中的欧拉回路。
工具/原料
1

电脑

2

Mathematica11.2

方法/步骤
1

给出一个图:g = Graph[{1, 2, 3, 4, 5, 6, 7}, {1 <-> 2, 1 <-> 3, 1 <-> 4, 1 <-> 5,    1 <-> 6, 2 <-> 3, 2 <-> 4, 2 <-> 6, 3 <-> 5, 3 <-> 7, 4 <-> 5,    4 <-> 6, 5 <-> 7, 6 <-> 7, 1 <-> 7}, VertexLabels -> 'Name']

2

高亮显示某一条边:HighlightGraph[g, {1 <-> 2}]

3

捎带着高亮显示这条边的两个顶点:HighlightGraph[g, {1, 1 <-> 2, 2}]

4

寻找图g的欧拉回路:h=FindEulerianCycle[g]

5

一步一步画出这个欧拉回路。Manipulate[HighlightGraph[g, {h[[1, 1 ;; n]]}], {n, 0, Length[h[[1]]], 1}]

6

11阶完全图里面的欧拉回路:g = CompleteGraph[11, VertexLabels -> 'Name']

7

4点对应4点的完全图里面的欧拉回路:g = CompleteGraph[{4, 4}, VertexLabels -> 'Name']

注意事项

偶数阶完全图,比如12阶完全图,就没有欧拉回路。

推荐信息