每个n都可以有这样的图表吗?如果是这样,是否可以以编程方式生成这样的图形?
提前致谢。
答案 0 :(得分:1)
这不适用于 n < 4,因为你需要至少4个节点来创建3的距离。
但是对于 n > = 4,它始终是可能的。
您可以选择任意顶点 A , B 和 C ,并在 A 和所有其他顶点之间有边, C 除外,并且在 B 和 C 之间还有一个优势。这可以看作如下:
在下文中假设 D 是任何不等于 A , B 或 C 的顶点。因为我们至少有4个顶点,所以至少有这样一个顶点。
这是因为每对顶点(不包括 C )表示最多2的距离,因为这些顶点通过 A 连接。 C 只能通过路径 B , A 到达其他顶点,当目标 D时,它表示距离3 强>
因此距离为3。
在补码图中,......:
之间的距离列出了所有可能的无序对,其中 A , B , C 和 D 。然后保持任何一对代表的距离不包括 A , B 或 C :这样的对是补图中的边,并且所以他们距离是1。
因此,补图的距离为3,由顶点 A 和 B 表示。
给定一个顶点列表 V ,你可以这样做(伪代码,边缘表示为括号内两个顶点的元组):
a = V[0]
b = V[1]
c = V[2]
edges = [ (b,c) ]
for each d in V:
if d != a && d != c:
edges.append( (a,d) )