|
|
A257537
|
|
Number of subtrees with at least one edge of the rooted tree with Matula-Goebel number n.
|
|
0
|
|
|
0, 1, 3, 3, 6, 6, 7, 7, 10, 10, 10, 12, 12, 12, 15, 15, 12, 19, 15, 18, 18, 15, 19, 24, 21, 19, 29, 22, 18, 27, 15, 31, 21, 18, 25, 37, 24, 24, 27, 34, 19, 33, 22, 25, 40, 29, 27, 48, 30, 37, 25, 33, 31, 56, 28, 42, 34, 27, 18, 51, 37, 21, 49, 63, 36, 36, 24, 30, 40, 45, 34, 73, 33, 37, 54, 42, 33, 48, 25
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,3
|
|
COMMENTS
|
The Matula 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 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 numbers of the m branches of T.
The subtree polynomial of a tree T is the bivariate generating polynomial of the subtrees of T with at least one edge with respect to the number of edges (marked by x) and number of pendant vertices (marked by y). See the Martin et. al, reference. For example, the subtree polynomial of the tree \/ is 2xy^2 + x^2 y^2.
If G(n;x,y) is the subtree polynomial of the rooted tree with Matula number n, then, obviously, a(n) = G(n;1,1). The Maple program uses this circuitous way for finding a(n). With the given Maple program, the command G(n) yields the subtree polynomial of the rooted tree having Matula number n (this is my "secret" reason to include this sequence).
|
|
LINKS
|
|
|
EXAMPLE
|
a((4)=3 because the rooted tree with Matula number 4 is \/ with subtrees \ , / , and \/ .
|
|
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 0 elif bigomega(n) = 1 then expand(x*y^2+x*g(pi(n))+x*y*h(pi(n))) else expand(g(r(n))+g(s(n))) end if end proc: h := 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 elif bigomega(n) = 1 then 0 else expand(h(r(n))+h(s(n))+g(r(n))*g(s(n))/y^2+g(r(n))*h(s(n))/y+h(r(n))*g(s(n))/y+h(r(n))*h(s(n))) end if end proc: 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 0 elif bigomega(n) = 1 then g(n)+G(pi(n)) else expand(G(r(n))+G(s(n))+h(n)-h(r(n))-h(s(n))) end if end proc: seq(subs({x = 1, y = 1}, G(i)), i = 1 .. 150);
|
|
MATHEMATICA
|
r[n_] := FactorInteger[n][[1, 1]];
s[n_] := n/r[n];
g[n_] := If[n == 1, 0, If[PrimeOmega[n] == 1, Expand[x*y^2 + x*g[PrimePi[n]] + x*y*h[PrimePi[n]]], Expand[g[r[n]] + g[s[n]]]]];
h[n_] := If[n == 1, 0, If[PrimeOmega[n] == 1, 0, Expand[h[r[n]] + h[s[n]] + g[r[n]]*g[s[n]]/y^2 + g[r[n]]*h[s[n]]/y + h[r[n]]*g[s[n]]/y + h[r[n]]*h[s[n]]]]];
G[n_] := G[n] = If[n == 1, 0, If[PrimeOmega[n] == 1, g[n] + G[PrimePi[n]], Expand[G[r[n]] + G[s[n]] + h[n] - h[r[n]] - h[s[n]]]]];
a[n_] := G[n] /. {x -> 1, y -> 1};
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|