web-dev-qa-db-ja.com

nノード間の接続の最大数を証明する方法はn *(n-1)/ 2です

N個のノードが与えられた場合、すべてのノードが他のすべてのノード(それ自体を除く)に接続されている場合、接続数はn *(n-1)/ 2になります。

これをどのように証明しますか?

これは宿題の質問ではありません。私は長い間CSの教科書から離れていて、これを証明する方法についての理論を忘れていました。

12
Manohar

そしてもう1つの解決策、組み合わせ:問題は、グラフ内のノードの可能なペアの数に相当します。

enter image description here

16

n個のノードがあり、それぞれにn -1個の接続があります(それぞれがそれ自体を除くすべてのノードに接続されています)。したがって、n*(n-1)を取得します。ただし、接続(x、y)と(y、x)は(すべての接続で)同じであるため、最終的にはn*(n-1)/2になります。

27
Aram Gevorgyan

悪い命名法で申し訳ありませんが、私は物理学者であり、CS /数学の人ではありません。

すべての単一ノード(nがあります)は、他のすべてのノードに接続する必要があります。 _(n-1)_「他のすべて」があります。

したがって、各nノードには_n-1_接続があります。 n(n-1)

ただし、各接続は「双方向」_(a to b = b to a)_であるため、最終的には_1/2_の係数になります。

だからn*(n-1)/2

11
user1512321

帰納法による証明。基本ケース-2ノードの場合、1つの接続と_2 * 1 / 2 == 1_があります。ここで、Nノードに対してN * (N-1) / 2接続があると仮定します。ノードをもう1つ追加するには、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_に置き換えられているため、証明は適切です。

2
twalberg

各頂点の 次数 は_n-1_です(_n-1_ネイバーがあるため)。
握手補題、言います: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 [〜#〜]

1
amit

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)
1
rsirs

別の可能な方程式ですが、上記の提案ほどクリーンではありません((n/2)-0.5)* n

0
Adam Glazier

遅れて証明ではありませんが、ノードを座標として「視覚化」し、行列のセルとして関係を「視覚化」することができます。ここで何かを描画する方法がわかりません。

ノードごとに1列、ノードごとに1行、クロスのセルがリレーションです。

X x個の可能なセルがあります。ただし、左上から右下の対角セルを削除する必要があります(ノードはノード自体にリンクできます)。したがって、x個のセルを削除すると、(x xx)=のみになります。 x *(x-1)残りのセル。次に、セル(x、y)はセル(y、x)と同じリンクであるため、残りのセルの半分を削除できます:x *(x-1)/ 2

0

N個のネットワークノードから可能なリンクの最大数を決定するための最も適切な答えは...

リンクに2つのノードが必要な場合の可能な組み合わせ/接続の総数。そう:

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

S o N(N-1) / 2

ここで、_N>1_は、リンクを持つのに2つのノードが必要なためです。

0
Dino