EULER transformation.
Antti Karttunen
karttu at megabaud.fi
Tue Jun 5 15:32:02 CEST 2001
Dear Neil,
Dear SeqFans,
In article by Bernstein and Sloane, Some canonical sequences of integers, Linear
Algebra and Its Applications, vol. 226-228, pp. 57-72, 1995
http://www.research.att.com/~njas/doc/eigen.ps
or http://www.research.att.com/~njas/doc/eigen.pdf
there's the following text about the transformation
EULER
1 + Sum_{n=1..inf} b_n x^n = Product_{n=1..inf} 1/((1 - x^n)^a_n)
If a_n enumerates a class of connected structures on n unlabeled nodes,
b_n enumerates the same structures when connectedness is not required.
b_n is also the number of ways of partitioning the integer n, given that
there are a_k possible types of parts of size k, for k = 1,2,...
...
(e.g. EULER([1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]);
gives the partition numbers, A000041: [1, 2, 3, 5, 7, 11, 15, 22, 30, 42, 56,
77, 101, 135, 176, 231]
which can also be interpreted that all-1 sequence
enumerates the connected sets of n dashes: {-}, {--}, {---}, {----}, {-----},
...
and A000041 counts also the possible unconnected variants:
{-}, {--, - -}, {---, -- -, - - -}, {----, --- -, -- --, -- - -, - - - -},
etc.)
...
Calculations are facilitated by setting the left side equal to
exp Sum_{n=1..inf} c_n x^n / n, so that
c_n = n b_n - Sum_{k=1..n-1} c_k b_{n-k}
a_n = 1/n Sum_{d|n} mu(n/d) c_d
(or maybe the following Maple code from
http://www.research.att.com/~njas/sequences/transforms.txt
is clearer:)
# EULER takes [a_1,a_2,a_3,...] and produces [b_1,b_2,b_3,...] with
# 1 + Sum_{n=1..inf} b_n x^n = 1 / Product_{n=1..inf} (1-x^n)^a_n.
EULER:=proc(a) local b,c,i,d:
if whattype(a) <> list then RETURN([]); fi:
c:=[]:
for i to nops(a) do c:=[op(c), sum( 'd*did(i,d)*a[d] ', 'd'=1..i)]: od:
b:=[]:
for i to nops(a) do
b:=[op(b),(1/i)*(c[i]+ sum( 'c[d]*b[i-d]', 'd'=1..i-1))]: od:
RETURN(b);
end:
EULERi:=proc(b) local a,c,i,d:
if whattype(b) <> list then RETURN([]); fi:
c:=[]:
for i to nops(b) do c:=[op(c),i*b[i]-sum('c[d]*b[i-d]', 'd'=1..i-1)]: od:
a:=[]:
for i to nops(b) do a:=[op(a),(1/i)*sum('mob(i,d)*c[d] ', 'd'=1..i)]: od:
RETURN(a);
end:
did:=proc(m,n) if irem(m,n) = 0 then 1 else 0: fi: end:
mob:=proc(m,n) if irem(m,n) = 0 then mobius(m/n) else 0: fi: end:
-----------------------------------------------------------------------
Now, my QUESTION: does these auxiliary, intermediate transformations
a_n <--> c_n <--> b_n
have any COMBINATORIAL significance, or are they just
generatingfunctionological magic?
At least the transformation
a_n = 1/n Sum_{d|n} mu(n/d) c_d
looks suspiciously like a formula for aperiodic necklaces (Lyndon words),
cf. for example A001037: a(n) = (1/n) sum_{d|n} mu(n/d) 2^d.
http://www.research.att.com/cgi-bin/access.cgi/as/njas/sequences/eisA.cgi?Anum=A001037
Terveisin,
Salut,
Antti Karttunen
More information about the SeqFan
mailing list