In mathematics, Cayley's formula is a result in graph theory named after Arthur Cayley. It states that for every positive integer , the number of trees on labeled vertices is .
The formula equivalently counts the number of spanning trees of a complete graph with labeled vertices (sequence A000272 in the OEIS).
Many proofs of Cayley's tree formula are known.[1] One classical proof of the formula uses Kirchhoff's matrix tree theorem, a formula for the number of spanning trees in an arbitrary graph involving the determinant of a matrix. Prüfer sequences yield a bijective proof of Cayley's formula. Another bijective proof, by André Joyal, finds a one-to-one transformation between n-node trees with two distinguished nodes and maximal directed pseudoforests. A proof by double counting due to Jim Pitman counts in two different ways the number of different sequences of directed edges that can be added to an empty graph on n vertices to form from it a rooted tree; see Double counting (proof technique) § Counting trees.
The formula was first discovered by Carl Wilhelm Borchardt in 1860, and proved via a determinant.[2] In a short 1889 note, Cayley extended the formula in several directions, by taking into account the degrees of the vertices.[3] Although he referred to Borchardt's original paper, the name "Cayley's formula" became standard in the field.
Cayley's formula immediately gives the number of labelled rooted forests on n vertices, namely (n + 1)n − 1. Each labelled rooted forest can be turned into a labelled tree with one extra vertex, by adding a vertex with label n + 1 and connecting it to all roots of the trees in the forest.
There is a close connection with rooted forests and parking functions, since the number of parking functions on n cars is also (n + 1)n − 1. A bijection between rooted forests and parking functions was given by M. P. Schützenberger in 1968.[4]
The following generalizes Cayley's formula to labelled forests: Let Tn,k be the number of labelled forests on n vertices with k connected components, such that vertices 1, 2, ..., k all belong to different connected components. Then Tn,k = k nn − k − 1.[5]