|
|
A055800
|
|
Triangle T read by rows: T(i,0)=1 for i >= 0; T(i,i)=0 for i >= 1; T(i,j) = Sum_{k=1..floor(i/2)} T(i-2k,j-2k+1) for 1 <= j <= i-1, where T(m,n) := 0 if m < 0 or n < 0.
|
|
1
|
|
|
1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 2, 2, 1, 0, 1, 1, 1, 2, 2, 1, 0, 0, 1, 1, 1, 2, 3, 4, 3, 1, 0, 1, 1, 1, 2, 3, 4, 3, 1, 0, 0, 1, 1, 1, 2, 3, 5, 7, 7, 4, 1, 0, 1, 1, 1, 2, 3, 5, 7, 7, 4, 1, 0, 0, 1, 1, 1, 2, 3, 5, 8, 12, 14, 11, 5, 1, 0
(list;
table;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,25
|
|
COMMENTS
|
T(i+j,j) is the number of strings (s(1),...,s(m)) of nonnegative integers s(k) such that m <= i+1, s(m)=j and s(k)-s(k-1) is an odd positive integer for k=2,3,...,m.
T(i+j,j) is the number of compositions of j consisting of at most i parts, all positive odd integers.
|
|
LINKS
|
|
|
FORMULA
|
G.f. for k-th diagonal: (1-x^2-x*(x/(1-x^2))^k)/(1-x-x^2). - Vladeta Jovovic, Mar 10 2005
|
|
EXAMPLE
|
Triangle begins:
1;
1,0;
1,1,0;
1,1,0,0;
1,1,1,1,0;
...
T(10,5) counts the strings 012345, 0125, 0145, 0345, 05.
T(10,5) counts the compositions 11111, 113, 131, 311, 5.
|
|
MAPLE
|
T:= proc(n, k) option remember;
if n<0 or k<0 then 0;
elif k=0 then 1;
elif k=n then 0;
else add(T(n-2*j, k-2*j+1), j=1..floor(n/2)) ;
end if; end proc:
|
|
MATHEMATICA
|
T[n_, k_]:= T[n, k]= If[n<0 || k<0, 0, If[k==0, 1, If[k==n, 0, Sum[T[n-2*j, k- 2*j+1], {j, Floor[n/2]}]]]]; Table[T[n, k], {n, 0, 15}, {k, 0, n}]//Flatten (* G. C. Greubel, Jan 24 2020 *)
|
|
PROG
|
(PARI) T(n, k) = if(n<0 || k<0, 0, if(k==0, 1, if(k==n, 0, sum(j=1, n\2, T(n-2*j, k-2*j+1) ))));
for(n=0, 15, for(k=0, n, print1(T(n, k), ", "))) \\ G. C. Greubel, Jan 23 2020
(Magma)
function T(n, k)
if n lt 0 or k lt 0 then return 0;
elif k eq 0 then return 1;
elif k eq n then return 0;
else return (&+[T(n-2*j, k-2*j+1): j in [1..Floor(n/2)]]);
end if; return T; end function;
[T(n, k): k in [0..n], n in [0..15]]; // G. C. Greubel, Jan 23 2020
(Sage)
@CachedFunction
def T(n, k):
if (n<0 or k<0): return 0
elif (k==0): return 1
elif (k==n): return 0
else: return sum(T(n-2*j, k-2*j+1) for j in (1..floor(n/2)))
[[T(n, k) for k in (0..n)] for n in (0..15)] # G. C. Greubel, Jan 23 2020
(GAP)
T:= function(n, k)
if n<0 or k<0 then return 0;
elif k=0 then return 1;
elif k=n then return 0;
else return Sum([1..Int(n/2)], j-> T(n-2*j, k-2*j+1));
fi; end;
Flat(List([0..15], n-> List([0..n], k-> T(n, k) ))); # G. C. Greubel, Jan 23 2020
|
|
CROSSREFS
|
T(2n, n)=A000045(n) for n >= 1 (Fibonacci numbers).
|
|
KEYWORD
|
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|