cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

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.

Original entry on oeis.org

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

Views

Author

Emeric Deutsch, Feb 12 2012

Keywords

Comments

Row n contains 1+A061775(n) entries (= 1 + number of vertices of the rooted tree).
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.
After activating the Maple program, the command mm(n) will yield the matching polynomial of the rooted tree corresponding to the Matula-Goebel number n.

References

  • C. D. Godsil, Algebraic Combinatorics, Chapman & Hall, New York, 1993.

Crossrefs

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.