【问题标题】:How to prove max number of connection between n nodes is n*(n-1)/2如何证明n个节点之间的最大连接数是n*(n-1)/2
【发布时间】:2012-12-05 19:03:11
【问题描述】:

给定n个节点,如果每个节点都连接到每个其他节点(除了它自己),则连接数将为n*(n-1)/2

如何证明这一点?

这不是作业问题。我已经远离 CS 教科书很久了,忘记了如何证明这一点的理论。

【问题讨论】:

  • 这个问题似乎跑题了,因为它是关于数学的。
  • 4 票,操作员道歉,因为这似乎是一个家庭作业问题,然后有人说这是题外话,因为它是关于数学的。你一定很喜欢。

标签: algorithm graph graph-algorithm discrete-mathematics


【解决方案1】:

你有 n 个节点,每个节点都有 n -1 个连接(每个节点都连接到除自身之外的每个节点),所以我们得到n*(n-1)。但是,因为连接 (x,y) 和 (y,x) 是相同的(对于所有连接),我们最终得到 n*(n-1)/2

【讨论】:

  • because connection (x,y) and (y,x) is the same (for all connections), we end up with n*(n-1)/2. 谢谢,对直觉的解释就像呼吸新鲜空气
【解决方案2】:

还有一个解决方案,组合: 问题等价于图中可能的节点对数,即:

【讨论】:

    【解决方案3】:

    抱歉,命名不当,我是物理学家,不是 CS/数学专家。

    每个节点(其中有n)都必须连接到其他节点。还有(n-1)“其他所有人”。

    所以每个 n 节点都有n-1 连接出来。 n(n-1)

    但由于每个连接都是“双向”(a to b = b to a),因此您最终会得到1/2 的系数

    所以n*(n-1)/2

    【讨论】:

      【解决方案4】:

      归纳证明。基本情况 - 对于 2 个节点,有 1 个连接和 2 * 1 / 2 == 1。现在假设对于N 节点,我们有N * (N-1) / 2 连接。增加一个节点必须建立N额外的连接,并且:

      N * (N-1) / 2 + N =
      (N^2 - N + 2N) / 2 =
      (N^2 + N) / 2 =
      (N + 1) * N / 2
      

      最后一行正好是N * (N - 1) / 2,将N替换为N+1,所以证明很好。

      【讨论】:

        【解决方案5】:

        每个顶点的degreen-1(因为它有n-1 邻居)。
        Handshaking lemma,说:Sigma(deg(v)) (for each node) = 2|E|。因此:

        Sigma(deg(v)) (for each node) = 2|E|
        Sigma(n-1) (for each node) = 2|E|
        (n-1)*n = 2|E|
        |E| = (n-1)*n /2 
        

        QED

        【讨论】:

          【解决方案6】:

          对于 1 个节点:n 个连接

          对于 2 个节点:n-1 个连接(已连接第一个节点)

          对于 3 个节点:n-2 个连接 .. 对于 n 个节点:n-(n-1) 个连接

          因此总连接数 = n + n-1 + n-2 + ........1

                                  = n(n-1)/2 (sum of first n-1 natural numbers)
          

          【讨论】:

            【解决方案7】:

            确定来自 N 个网络节点的最大链接数的最合适答案是......

            链接需要 2 个节点的可能组合/连接的总数;所以:

            (N!) / [(N-2)!)(2!)] = N(N-1)(N-2)! / (N-2)!(2!);

            S o N(N-1) / 2

            N>1 需要 2 个节点才能拥有一个链接。

            【讨论】:

              【解决方案8】:

              晚了,不是证明,但您可以将节点“可视化”为坐标,将关系“可视化”为矩阵中的单元格,我不知道如何在这里绘制一些东西。

              每个节点一列,每个节点一行,交叉处的单元格是关系。

              您有 xx 个可能的单元格。但是您需要删除左上-右下对角单元格(节点可以链接到自身)。因此,您删除了 x 个单元格并且只有 (xx-x) = x*(x-1) 个剩余单元格。然后,单元格 (x,y) 与单元格 (y,x) 的链接相同,因此您可以删除剩余的一半单元格:x*(x-1)/2

              【讨论】:

                【解决方案9】:

                另一个可能的等式,但不如上面的建议那么干净 ((n/2) - 0.5) * n

                【讨论】:

                  猜你喜欢
                  • 2011-01-29
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-11-06
                  • 1970-01-01
                  • 2023-03-08
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多