A198340 The overall Wiener index of the rooted tree having Matula-Goebel number n.
0, 1, 6, 6, 21, 21, 24, 24, 56, 56, 56, 67, 67, 67, 126, 80, 67, 161, 80, 154, 154, 126, 161, 197, 252, 161, 354, 188, 154, 333, 126, 240, 252, 154, 311, 440, 197, 197, 333, 414, 161, 411, 188, 311, 683, 354, 333, 545, 384, 636, 311, 411, 240, 921, 462, 510
Offset: 1
Keywords
Examples
a(4)=6 because the rooted tree with Matula-Goebel number 4 is V; each of the 3 one-vertex subtrees has Wiener index 0, each of the 2 one-edge subtrees has Wiener index 1, and the tree V itself has Wiener index 4; 0+0+0+1+1+4=6.
References
- 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 Review, 10, 1968, 273.
- D. Bonchev, The overall Wiener index - a new tool for characterization of molecular topology, J. Chem. Inf. Comput. Sci., 2001, 41, 582-592.
Links
- E. Deutsch, Rooted tree statistics from Matula numbers, arXiv:1111.4288.
- Index entries for sequences related to Matula-Goebel numbers
Programs
-
Maple
m2union := proc (x, y) sort([op(x), op(y)]) end proc: with(numtheory); MRST := 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, seq(ithprime(mrst[pi(n)][i]), i = 1 .. nops(mrst[pi(n)]))] else [seq(seq(mrst[r(n)][i]*mrst[s(n)][j], i = 1 .. nops(mrst[r(n)])), j = 1 .. nops(mrst[s(n)]))] end if end proc: MNRST := 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 [] elif bigomega(n) = 1 then m2union(mrst[pi(n)], mnrst[pi(n)]) else m2union(mnrst[r(n)], mnrst[s(n)]) end if end proc: MST := proc (n) m2union(mrst[n], mnrst[n]) end proc: for n to 2000 do mrst[n] := MRST(n): mnrst[n] := MNRST(n): mst[n] := MST(n) end do: W := proc (n) local u, v, E, PL: u := proc (n) options operator, arrow: op(1, factorset(n)) end proc: v := proc (n) options operator, arrow: n/u(n) end proc: E := proc (n) if n = 1 then 0 elif bigomega(n) = 1 then 1+E(pi(n)) else E(u(n))+E(v(n)) end if end proc: PL := proc (n) if n = 1 then 0 elif bigomega(n) = 1 then 1+E(pi(n))+PL(pi(n)) else PL(u(n))+PL(v(n)) end if end proc: if n = 1 then 0 elif bigomega(n) = 1 then W(pi(n))+PL(pi(n))+1+E(pi(n)) else W(u(n))+W(v(n))+PL(u(n))*E(v(n))+PL(v(n))*E(u(n)) end if end proc: OW := proc (n) options operator, arrow: add(W(MST(n)[j]), j = 1 .. nops(MST(n))) end proc: seq(OW(n), n = 1 .. 60);
Comments