有n个节点的有向图中的最大边数是多少? [关闭]

Posted

技术标签:

【中文标题】有n个节点的有向图中的最大边数是多少? [关闭]【英文标题】:What is the maximum number of edges in a directed graph with n nodes? [closed] 【发布时间】:2011-06-30 19:31:18 【问题描述】:

有n个节点的有向图中的最大边数是多少?有上限吗?

【问题讨论】:

@LiorKogan “算法”部分呢? 抱歉,我没有看到任何“算法”部分。只是一个组合问题 我投票结束这个问题,因为它与编程无关。 我投票结束这个问题,因为它不是一个专门的编程问题。 【参考方案1】:

除了 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

【讨论】:

【参考方案2】:

在带有自循环的图中

max edges= n*n

比如我们有4个节点(顶点)

4 nodes = 16 edges= 4*4

【讨论】:

【参考方案3】:

有向图:

问题:有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

【讨论】:

【参考方案4】:

换一种说法:

完整图是一个无向图,其中每对不同的顶点都有一条连接它们的唯一边。从某种意义上说,这很直观,您基本上是从 n 个顶点的集合中选择 2 个顶点。

nC2 = n!/(n-2)!*2! = n(n-1)/2

这是无向图可以拥有的最大边数。现在,对于有向图,每条边都转换为两条有向边。所以只需将前面的结果乘以 2。这会给你结果:n(n-1)

【讨论】:

【参考方案5】:

在有 N 个顶点的有向图中,每个顶点可以连接到图中的 N-1 个其他顶点(假设没有自环)。因此,边的总数可以是N(N-1)。

【讨论】:

此答案不会提供其他答案中尚不存在的任何内容。此外,/2 用于无向图。【参考方案6】:

无向是 N^2。简单 - 每个节点都有 N 个边选项(包括他自己),总共有 N 个节点,因此 N*N

【讨论】:

N^2 包括方向的重复,因此您计算的比实际边缘更多。 1,2 与无向中的 2,1 相同。在一个无向图它的n(n-1)/2.【参考方案7】:

在无向图中(不包括多重图),答案是 n*(n-1)/2。在有向图中,两个节点之间可能在两个方向上都出现一条边,那么答案是 n*(n-1)。

【讨论】:

【参考方案8】:

如果不允许多边,则图中可以有多达n(n-1)/2 条边。

如果我们将顶点标记为1,2,...,n 并且从ij iff i>j 存在一条边,这是可以实现的。

见here。

【讨论】:

【参考方案9】:

也可以认为是选择节点对 n 的方式数选择 2 = n(n-1)/2。如果只有任何一对只能有一条边,则为真。否则乘以 2

【讨论】:

【参考方案10】:

正确答案是 n*(n-1)/2。每条边都被计算了两次,因此除以 2。完整的图有最大边数,由 n 选择 2 = n*(n-1)/2 给出。

【讨论】:

仅当您在图表中禁止有向循环时才适用。 这仅适用于无向图 N*(N-1)/2 仅适用于无向图,因为每个节点的边数从 (n-1),(n-2),(n-3) 逐渐减少, ....,1 (所有的总和为 n(n-1)/2。但是,对于有向图,您应该考虑每个顶点的外字边,因此是 n(n-1)。【参考方案11】:

如果图不是多重图,那么它显然是 n * (n - 1),因为每个节点最多可以有到每个其他节点的边。如果这是一个多重图,则没有最大限制。

【讨论】:

【参考方案12】:

如果您有N 节点,则有N - 1 有向边无法从它引出(到达每个其他节点)。因此,最大边数为N * (N - 1)

【讨论】:

正确。如果允许边从节点到自身,则最大值为N^2 @M.A 如果您谈论的是无向图,那么您是正确的。然而,在有向图中,边 (A,B) 与边 (B,A) 不同 N*(N-1) 是有向图中的边数。无向图中的边数为 (N * (N-1)) / 2 即假设图是有向的 与@ypercube 思路相同,答案是正确的,但不考虑有向图中的自环。

以上是关于有n个节点的有向图中的最大边数是多少? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

线段树建图

Codeforces 22E(图论)

UOJ泛做

USSD 消息中的最大字符数是多少?

B20J_1297_[SCOI2009]迷路_矩阵乘法

GDFZOJ 美丽树