OFFSET
1,2
COMMENTS
A matching in a graph is a set of edges, no two of which have a vertex in common. The empty set is considered to be a matching.
The Matula-Goebel number of a rooted tree can be defined in the following recursive manner: to the one-vertex tree there corresponds the number 1; to a tree T with root degree 1 there corresponds the t-th prime number, where t is the Matula-Goebel number of the tree obtained from T by deleting the edge emanating from the root; to a tree T with root degree m>=2 there corresponds the product of the Matula-Goebel numbers of the m branches of T.
LINKS
É. Czabarka, L. Székely, and S. Wagner, The inverse problem for certain tree parameters, Discrete Appl. Math., 157, 2009, 3314-3319.
Emeric Deutsch, Rooted tree statistics from Matula numbers, arXiv:1111.4288 [math.CO], 2011.
F. Goebel, On a 1-1-correspondence between rooted trees and natural numbers, J. Combin. Theory, B 29 (1980), 141-143.
I. Gutman and A. Ivic, On Matula numbers, Discrete Math., 150, 1996, 131-142.
I. Gutman and Yeong-Nan Yeh, Deducing properties of trees from their Matula numbers, Publ. Inst. Math., 53 (67), 1993, 17-22.
D. W. Matula, A natural rooted tree enumeration by prime factorization, SIAM Rev. 10 (1968) 273.
FORMULA
Define b(n) (c(n)) to be the number of matchings of the rooted tree with Matula-Goebel number n that contain (do not contain) the root. We have the following recurrence for the pair A(n)=[b(n),c(n)]. A(1)=[0,1]; if n=prime(t), then A(n)=[c(t),b(t)+c(t)]; if n=r*s (r,s,>=2), then A(n)=[b(r)*c(s)+c(r)*b(s), c(r)c(s)]. Clearly, a(n)=b(n)+c(n). See the Czabarka et al. reference (p. 3315, (2)). The Maple program is based on this recursive formula.
EXAMPLE
a(3)=3 because the rooted tree with Matula-Goebel number 3 is the path ABC on 3 vertices; it has 3 matchings: empty, {AB}, {BC}.
MAPLE
with(numtheory): A := proc (n) local r, s: r := proc (n) options operator, arrow: op(1, factorset(n)) end proc: s := proc (n) options operator, arrow: n/r(n) end proc: if n = 1 then [0, 1] elif bigomega(n) = 1 then [A(pi(n))[2], A(pi(n))[1]+A(pi(n))[2]] else [A(r(n))[1]*A(s(n))[2]+A(s(n))[1]*A(r(n))[2], A(r(n))[2]*A(s(n))[2]] end if end proc: a := proc (n) options operator, arrow: A(n)[1]+A(n)[2] end proc: seq(a(n), n = 1 .. 80);
MATHEMATICA
r[n_] := FactorInteger[n][[1, 1]];
s[n_] := n/r[n];
A[n_] := Which[n == 1, {0, 1}, PrimeOmega[n] == 1, {A[PrimePi[n]][[2]], A[PrimePi[n]][[1]] + A[PrimePi[n]][[2]]}, True, {A[r[n]][[1]]* A[s[n]][[2]] + A[s[n]][[1]]*A[r[n]][[2]], A[r[n]][[2]]*A[s[n]][[2]]}];
a[n_] := Total[A[n]];
Table[a[n], {n, 1, 80}] (* Jean-François Alcover, Jun 25 2024, after Maple code *)
CROSSREFS
KEYWORD
nonn
AUTHOR
Emeric Deutsch, Feb 11 2012
STATUS
approved