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

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

【问题讨论】:

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

标签: math graph max


【解决方案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 思路相同,答案是正确的,但不考虑有向图中的自环。
                  猜你喜欢
                  • 2014-04-02
                  • 1970-01-01
                  • 1970-01-01
                  • 2023-03-14
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多