如何证明n个节点之间的最大连接数是n *(n-1)/ 2

时间:2012-12-05 19:03:12

标签: algorithm graph graph-algorithm discrete-mathematics

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

如何证明这一点?

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

9 个答案:

答案 0 :(得分:25)

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

答案 1 :(得分:14)

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

enter image description here

答案 2 :(得分:11)

抱歉这个错误的命名法,我是一个物理学家,而不是CS /数学家。

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

因此每个n个节点都有n-1个连接。 n(n-1)

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

所以n*(n-1)/2

答案 3 :(得分:2)

通过归纳证明。基本情况 - 对于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) / 2N替换为N+1,因此证明不错。

答案 4 :(得分:1)

每个顶点的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

答案 5 :(得分:1)

表示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)

答案 6 :(得分:0)

确定N个网络节点可能的最大链路数的最合适的答案是......

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

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

取值 o N(N-1) / 2

其中N>1因为需要2个节点才能拥有链接。

答案 7 :(得分:0)

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

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

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

答案 8 :(得分:0)

另一个可能的方程,但不如上面的建议那么清晰((n / 2)-0.5)* n