Cayley凱萊定理 一一對應

2022-05-02 08:18:07 字數 1166 閱讀 1811

過$n$個有標誌頂點的樹的數目等於$n^$。

此定理說明用$n-1$條邊將$n$個已知的頂點連線起來的連通圖的個數是$n^$。也可以這樣理解,將n個城市連線起來的樹狀網路有$n^$種可能方案.所謂樹狀,指的是用$n-1$條邊將$n$個城市連線起來,即無環。當然,建造乙個樹狀網路一般是求其長度最短或造價最少等.cayley定理只能說明可能方案的數目。

cayley定理的證明方法很多,下面採用最聰明也是最容易理解的一一對應法。不失一般性,假定已知的n個頂點標誌為1,2,..n.

假設$t$是其中一棵樹,樹葉中有標號最小的,設為$a_1$,$a_1$的臨界點為$b_1$,從圖中消去$a_1$點和邊$(a_1,b_1)$,$b_1$點便成為消去後餘下的樹$t_1$的頂點。在餘下的樹$t_1$中繼續尋找標號最小的樹葉,設為$a_2$,$a_2$的鄰接點為$b_2$,從$t_1$中消去$a_2$及邊$(a_2,b_2)$。如此步驟共執行n-2次,直到最後只剩下一條邊為止.於是一棵樹對應一串行

$$b_1,b_2,\cdots ,b_$$

$b_1,b_2,\cdots ,b_$是1到n的數,並且允許重複。

反過來從$b_1 b_2 \cdots b_$可以恢復樹$t$本身,方法如下:

乙個是頂點標號的有序序列

$$1,2, \cdots ,n  \tag $$

另乙個是生成的序列

$$b_1,b_2,\cdots ,b_ \tag$$

過程:在序列(1)中找出第乙個不出現在序列(2)中的數,這個數顯然便是$a_1$,同時形成的邊$(a_1,b_1)$,並從(1)中消去$a_1$,從(2)中消去$b_1$,在餘下的序列(1)、(2)中繼續以上的步驟n-2次,直到序列(2)為空集為止。這時序列(1)剩下的兩個數$a_k$,$b_k$,邊$(a_k,b_k)$是樹t的最後一條邊。

以下圖說明上述步驟:

上面的過程說明過n個已知標號的頂點的樹和序列$b_1b_2 \cdots b_$一一對應,根據乘法法則可得,過n個有標號(相當於互異)的頂點的樹的數目,由於$1\leq b_i\leq n,i=1,2,\cdots,n-2$,故為$n^$個.

cayley定理的證明過程實際上是提供了構造過n個有標號頂點的樹的方法。

DLL程式設計一一對應標頭檔案約定

vc程式設計中我們一般採用 stdcall呼叫約定,並且生成的dll希望在c編譯環境下也能成功執行,所以我們通常在編寫dll時,在標頭檔案中一般新增如下定義 define exports 1 ifdef cplusplus ifdef exports define dll export extern...

存疑578B(已解決)月份一一對應

題目 注意 字串使用char month 13 13 中間使用雙引號和逗號。單引號不可以 if while使用錯誤,num沒有清零,d0與num位置寫錯。問題二,時間超限,答案錯誤。問題 if d0 ym isleap y m0 1 april may june july august septem...

如何在NCBI實現大批量資料的一一對應

有時我們手頭會有一批資料,或者是只有大量的某些id。比方說 accession number gi geneid symbol go unigene pubmed taxid等等。事實大部分資料庫都會有提供一些專門的檔案或工具來實現這些資料間大批量的一一對應。先來講講ncbi 的。ncftp gen...