A193403 Triangle read by rows: row n contains the coefficients (of the increasing powers of the variable x) of the matching polynomial of the rooted tree having Matula-Goebel number n.
0, 1, -1, 0, 1, 0, -2, 0, 1, 0, -2, 0, 1, 1, 0, -3, 0, 1, 1, 0, -3, 0, 1, 0, 0, -3, 0, 1, 0, 0, -3, 0, 1, 0, 3, 0, -4, 0, 1, 0, 3, 0, -4, 0, 1, 0, 3, 0, -4, 0, 1, 0, 2, 0, -4, 0, 1, 0, 2, 0, -4, 0, 1, 0, 2, 0, -4, 0, 1, -1, 0, 6, 0, -5, 0, 1, 0, 0, 0, -4, 0, 1, 0, 2, 0, -4, 0, 1, -1, 0, 5, 0, -5, 0, 1, 0, 0, 0, -4, 0, 1
Offset: 1
References
- C. D. Godsil, Algebraic Combinatorics, Chapman & Hall, New York, 1993.
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.
- Index entries for sequences related to Matula-Goebel numbers
Programs
-
Maple
with(numtheory): N := 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 1+N(pi(n)) else N(r(n))+N(s(n))-1 end if end proc: M := 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 [x*M(pi(n))[2], M(pi(n))[1]+M(pi(n))[2]] else [M(r(n))[1]*M(s(n))[2]+M(r(n))[2]*M(s(n))[1], M(r(n))[2]*M(s(n))[2]] end if end proc: m := proc (n) options operator, arrow: sort(expand(M(n)[1]+M(n)[2])) end proc: mm := proc (n) options operator, arrow: sort(expand(x^N(n)*subs(x = -1/x^2, m(n)))) end proc: for n to 19 do seq(coeff(mm(n), x, j), j = 0 .. N(n)) end do; # yields sequence in triangular form
-
Mathematica
r[n_] := FactorInteger[n][[1, 1]]; s[n_] := n/r[n]; V[n_] := Which[n == 1, 1, PrimeOmega[n] == 1, 1 + V[PrimePi[n]], True, V[r[n]] + V[s[n]] - 1]; M[n_] := Which[n == 1, {0, 1}, PrimeOmega[n] == 1, {x*M[PrimePi[n]][[2]], M[PrimePi[n]][[1]] + M[PrimePi[n]][[2]]}, True, {M[r[n]][[1]]*M[s[n]][[2]] + M[r[n]][[2]]*M[s[n]][[1]], M[r[n]][[2]]*M[s[n]][[2]]}]; m[n_] := M[n] // Total; mm[n_] := x^V[n]*(m[n] /. x -> -1/x^2); T[n_] := CoefficientList[mm[n], x]; Table[T[n], {n, 1, 19}] // Flatten (* Jean-François Alcover, Jun 21 2024, after Maple code *)
-
Sage
def M(n) : if n == 1 : return [0, 1, 1] if 1 == sloane.A001222(n) : # bigomega mpi = M(prime_pi(n)) return [x*mpi[1], mpi[0]+mpi[1], 1+mpi[2]] r = max(prime_divisors(n)); mr = M(r); ms = M(n//r) return [mr[0]*ms[1]+mr[1]*ms[0],mr[1]*ms[1],mr[2]+ms[2]-1] def A193403_coeffs(n) : mn = M(n) q = (mn[0]+mn[1]).subs(x=-1/x^2) p = expand(x^mn[2]*q) return coefficient_list(p, x) for n in (1..19) : print(A193403_coeffs(n)) # Peter Luschny, Feb 12 2012
Formula
Define b(n) (c(n)) to be the generating polynomials of the matchings of the rooted tree with Matula-Goebel number n that contain (do not contain) the root, with respect to the size of the matching. We have the following recurrence for the pair M(n)=[b(n),c(n)]. M(1)=[0,1]; if n=prime(t) (=the t-th prime), then M(n)=[xc(t),b(t)+c(t)]; if n=r*s (r,s,>=2), then M(n)=[b(r)*c(s)+c(r)*b(s), c(r)*c(s)]. Then m(n)=b(n)+c(n) is the generating polynomial of the matchings of the rooted tree with respect to the size of the matchings (a modified matching polynomial). The actual matching polynomial is obtained by the substitution x = -1/x^2, followed by multiplication by x^N(n), where N(n) is the number of vertices of the rooted tree.
Comments