我们只考虑无向图。图的直径是在所有顶点s
和t
的选择中,s
和t
之间的最短路径距离的最大值。(回想一下,s
和t
之间的最短路径距离是s-t
路径中最少的边数。)接下来,对于顶点s
,让l(s)
表示s
和t
之间的最短路径距离在所有顶点t
上的最大值。图的半径是所有顶点选择的s
中l(s)
的最小值。半径r
和直径d
以下哪项始终保持不变?选择最佳答案。
1) r
我们知道(1)和(2)总是保存在任何写的参考书中。我的挑战是入学考试中提到的这个问题,只有(1)或(2)中的一个应该是正确的,OP说选择最佳答案,考试答题卡后写(1)是最佳选择。如何验证我,为什么(1)比(2)好。
OP将s和t之间的最短路径距离定义为“s-t路径中最少的边数”。这让事情变得更简单。
我们可以用一些伪代码来编写定义:
def dist(s, t):
return min([len(path)-1 for path starts with s and ends with t])
r = min([max([dist(s, t) for t in V]) for s in V])
d = max([max([dist(s, t) for t in V]) for s in V])
其中V
是所有顶点的集合。
现在(2)显然是正确的。定义本身告诉我们:max总是
(1)稍微不那么明显。它至少需要几个步骤来证明。
假设
d=dist(A, B)
,并且r=dist(C, D)
,我们有
dist(C, A) + dist(C, B) >= dist(A, B),
否则路径
A-C-B
的长度将小于dist(A, B)
。
从
r
的定义中,我们知道
dist(C, D) >= dist(C, A)
dist(C, D) >= dist(C, B)
因此
2*dist(C, D)
那么哪一个更好呢?这取决于你如何定义“更好”。如果我们认为非常正确(或不太明显)的东西比非常正确的东西好,那么我们可能会同意(1)比(2)好。
他们都坚持。
2) 应该很清楚。
1)使用三角形不等式保持不变。我们可以使用这个属性,因为图上的距离是一个度量(http://en.wikipedia.org/wiki/Metric_(数学))。使用让d(x, z)=直径(G),让y是G的中心(即G中存在一个顶点v,使得d(y, v)=半径(G))。因为d(y, v)=半径(G)和d(y, v)=d(v, y),我们知道d(v, z)
它们都是真的。不要让问题模棱两可的考试削弱你的概念。
还有证据:
首先,第二不平等是非常微不足道的(从定义本身来看)
现在是第一个
D
设z为中心顶点,则:
e(z)=r
现在,
diameter = d(x,y) [d(x,y) denotes distance between some vertex x & y]
d(x,y) <= d(x,z) + d(z,y)
d(x,y) <= d(z,x) + d(z,y)
d(x,y) <= e(z) + e(z) [this can be an upper bound as e(z)>=d(z,u) for all u]
diameter <= 2*r
我需要给一个减去的圆添加一个圆形径向梯度。我一直在尝试,但我不能得到一个圆形渐变。 1:整圆2:整圆中的径向梯度3:减去圆4:减去圆中的圆形径向梯度试验(不是我想要的)5:减去圆中的圆形径向梯度。这就是我想要获得的。 一旦我得到减去的圆(3),我应用径向梯度,但我得到(4)而不是(5)。 我也尝试过改变x和y的值,但是我没有得到我想要的。
本文会围绕算法中DFS求有向图或无向图两点间所有路径,先讲解DFS以及有向图或无向图的意思。 有向图在图中的边是有方向的,表现出来就是有个箭头指示方向,节点只能单向通信或传递消息,相当于单行道,无向图边没方向是双向的,边连接的两个节点有通路可以双向通信,类似于双行道。 无向图,边没有方向的图称为无向图。邻接矩阵则是对称的,且只有0和1,因为没有方向的区别后,要么有边,要么没边。 DFS作为搜索算法
我遇到了一个问题,我必须找出给定图形中的最长路径。我有一个边列表(例如,{AB,BC}),它表明在顶点/节点(A,B,C)之间有一条边。现在我想计算出可能的最长路径(不重复顶点),这样它可以覆盖从任何顶点/节点开始的最大节点。 解决这个问题的最佳方法是什么?我必须把它作为一个计划来实施。 我在谷歌上查找最小生成树、Dijkstra的算法等等。但我想不出什么最适合解决这个问题。 任何帮助或阅读参考资
我有一个一般性的问题,关于如何在边没有权的无向图中找到最短路径和最长路径。 我们需要使用DFS算法来寻找图中的最长路径,而我们需要使用BFS算法来寻找图中的最短路径,这是一个正确的结论吗?
Algo求图的直径如下: 在任何arbirtray顶点上运行BFS,并记住最后访问的节点(例如t) 从t运行BFS,并记住最后访问的节点(例如t') t和t'之间的最短距离是图的直径。
有没有办法让CardView在顶部只有角半径?