【发布时间】:2011-06-30 19:31:18
【问题描述】:
有n个节点的有向图中的最大边数是多少?有上限吗?
【问题讨论】:
-
@LiorKogan “算法”部分呢?
-
抱歉,我没有看到任何“算法”部分。只是一个组合问题
-
我投票结束这个问题,因为它与编程无关。
-
我投票结束这个问题,因为它不是一个专门的编程问题。
有n个节点的有向图中的最大边数是多少?有上限吗?
【问题讨论】:
除了 Chris Smith 提供的直观解释之外,我们还可以从不同的角度考虑为什么会出现这种情况:考虑无向图。
要了解为什么在 DIRECTED 图中答案是 n*(n-1),请考虑一个无向图(这意味着如果两个节点(A 和 B)之间存在链接,那么您可以转到两种方式:从 A 到 B 和从 B 到 A)。无向图中的最大边数为n(n-1)/2,显然在有向图中有两倍。
很好,您可能会问,但是为什么在无向 图中最多有n(n-1)/2 边?
为此,考虑 n 个点(节点)并询问从第一个点可以形成多少条边。显然,n-1 边缘。现在,假设您连接了第一个点,可以从第二个点绘制多少条边?由于第一个点和第二个点已经连接,因此可以完成n-2 边。等等。所以所有边的总和是:
Sum = (n-1)+(n-2)+(n-3)+...+3+2+1
由于 Sum 中有 (n-1) 项,并且此类序列中 Sum 的平均值为 ((n-1)+0)/2 {(last + first)/2}, Sum = n(n-1)/2
【讨论】:
在带有自循环的图中
max edges= n*n
比如我们有4个节点(顶点)
4 nodes = 16 edges= 4*4
【讨论】:
问题:有n个顶点的有向图中的最大边数是多少?
每条边由它的起始顶点和结束顶点指定。有 n 个 起始顶点的选择。因为没有自环,所以有 结束顶点的 n-1 个选择。将这些相乘即可 可能的选择。
回答:n(n−1)
问题:n个顶点的无向图中的最大边数是多少?
在无向图中,每条边由它的两个端点指定 顺序无关紧要。因此,边的数量是数量 从顶点集合中选择的大小为 2 的子集。由于该集 顶点的大小为 n,此类子集的数量由 二项式系数 C(n,2)(也称为“n 选择 2”)。使用 二项式系数的公式,C(n,2) = n(n-1)/2。
回答:(n*(n-1))/2
【讨论】:
换一种说法:
完整图是一个无向图,其中每对不同的顶点都有一条连接它们的唯一边。从某种意义上说,这很直观,您基本上是从 n 个顶点的集合中选择 2 个顶点。
nC2 = n!/(n-2)!*2! = n(n-1)/2
这是无向图可以拥有的最大边数。现在,对于有向图,每条边都转换为两条有向边。所以只需将前面的结果乘以 2。这会给你结果:n(n-1)
【讨论】:
在有 N 个顶点的有向图中,每个顶点可以连接到图中的 N-1 个其他顶点(假设没有自环)。因此,边的总数可以是N(N-1)。
【讨论】:
/2 用于无向图。
无向是 N^2。简单 - 每个节点都有 N 个边选项(包括他自己),总共有 N 个节点,因此 N*N
【讨论】:
n(n-1)/2.
在无向图中(不包括多重图),答案是 n*(n-1)/2。在有向图中,两个节点之间可能在两个方向上都出现一条边,那么答案是 n*(n-1)。
【讨论】:
【讨论】:
也可以认为是选择节点对 n 的方式数选择 2 = n(n-1)/2。如果只有任何一对只能有一条边,则为真。否则乘以 2
【讨论】:
正确答案是 n*(n-1)/2。每条边都被计算了两次,因此除以 2。完整的图有最大边数,由 n 选择 2 = n*(n-1)/2 给出。
【讨论】:
如果图不是多重图,那么它显然是 n * (n - 1),因为每个节点最多可以有到每个其他节点的边。如果这是一个多重图,则没有最大限制。
【讨论】:
如果您有N 节点,则有N - 1 有向边无法从它引出(到达每个其他节点)。因此,最大边数为N * (N - 1)。
【讨论】:
N^2。