OFFSET
1,6
COMMENTS
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.
The number of entries in row n is A061775(n) (= number of vertices of the rooted tree).
LINKS
Emeric Deutsch, Tree statistics from Matula numbers, arXiv preprint 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
For a graph with degree sequence a,b,c,..., define the degree sequence polynomial to be x^a + x^b + x^c + ... . The degree sequence polynomial g(n)=g(n,x) of the rooted tree with Matula-Goebel number n can be obtained recursively in the following way: g(1)=1; if n=prime(t) (=the t-th prime), then g(n)=g(t)+x^G(t)*(x-1)+x; if n=r*s (r,s>=2), then g(n)=g(r)+g(s)-x^G(r)-x^G(s)+x^G(n); G(m) is the number of prime divisors of m counted with multiplicities. The Maple program, based on this recursive procedure, finds for an arbitrary n the polynomial g(n,x) and then extracts from this polynomial the degree sequence S(n).
EXAMPLE
Row 7 is 1,1,1,3 because the rooted tree with Matula-Goebel number 7 is the rooted tree Y.
Row 32 is 1,1,1,1,1,5 because the rooted tree with Matula-Goebel number 32 is a star with 5 edges.
MAPLE
with(numtheory): g := 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 1 elif bigomega(n) = 1 then sort(expand(g(pi(n))+x^bigomega(pi(n))*(x-1)+x)) else sort(expand(g(r(n))+g(s(n))-x^bigomega(r(n))-x^bigomega(s(n))+x^bigomega(n))) end if end proc: S := proc (n) if n = 1 then 0 else seq(seq(j, i = 1 .. coeff(g(n), x, j)), j = 1 .. degree(g(n))) end if end proc: for n to 25 do S(n) end do; # yields sequence in triangular form
MATHEMATICA
r[n_] := FactorInteger[n][[1, 1]];
s[n_] := n/r[n];
g[n_] := Which[n == 1, 1, PrimeOmega[n] == 1, g[PrimePi[n]] + x^PrimeOmega[PrimePi[n]]*(x - 1) + x, True, g[r[n]] + g[s[n]] - x^PrimeOmega[r[n]] - x^PrimeOmega[s[n]] + x^PrimeOmega[n]];
S[n_] := If[n == 1, {0}, Table[t = Table[j, {i, 1, Coefficient[g[n], x, j]}]; If[t == {}, Nothing, t], {j, 1, Exponent[g[n], x]}]] // Flatten;
Table[S[n], {n, 1, 25}] // Flatten (* Jean-François Alcover, Jun 20 2024, after Maple code *)
CROSSREFS
KEYWORD
nonn,tabf
AUTHOR
Emeric Deutsch, Oct 05 2011
STATUS
approved