A055801 Triangle T read by rows: T(i,0)=T(i,i)=1, T(i,j) = Sum_{k=1..floor(n/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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 3, 3, 1, 1, 1, 1, 2, 3, 4, 3, 1, 1, 1, 1, 2, 3, 5, 6, 4, 1, 1, 1, 1, 2, 3, 5, 7, 7, 4, 1, 1, 1, 1, 2, 3, 5, 8, 11, 10, 5, 1, 1, 1, 1, 2, 3, 5, 8, 12, 14, 11, 5, 1, 1, 1, 1, 2, 3, 5, 8, 13, 19, 21, 15, 6, 1
Offset: 0
Examples
Rows: 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 2 2 1 1 1 1 2 3 3 1 1 1 1 2 3 4 3 1 1 1 1 2 3 5 6 4 1 1 1 1 2 3 5 7 7 4 1 1 1 1 2 3 5 8 11 10 5 1 1 1 1 2 3 5 8 12 14 11 5 1 1 1 1 2 3 5 8 13 19 21 15 6 1 1 1 1 2 3 5 8 13 20 26 25 16 6 1 1 1 1 2 3 5 8 13 21 32 40 36 21 7 1 1 1 1 2 3 5 8 13 21 33 46 51 41 22 7 1 T(9,6) counts the strings 3456, 1236, 1256, 1456, 036, 016, 056. T(9,6) counts the compositions 111, 113, 131, 311, 33, 15, 51.
Links
- G. C. Greubel, Rows n = 0..100 of triangle, flattened
- Clark Kimberling, Path-counting and Fibonacci numbers, Fib. Quart. 40 (4) (2002) 328-338, Example 2B.
Crossrefs
Programs
-
GAP
T:= function(n,k) if n<0 or k<0 then return 0; elif k=0 or k=n then return 1; 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
-
Magma
function T(n,k) if n lt 0 or k lt 0 then return 0; elif k eq 0 or k eq n then return 1; 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
-
Maple
A055801 := proc(i,j) option remember; if j =0 or j = i then 1; elif i < 0 or j < 0 then 0; else add(procname(i-2*k,j-2*k+1),k=1..floor(i/2)) ; end if; end proc: seq(seq(A055801(n,k), k=0..n),n=0..20); # R. J. Mathar, Feb 11 2018
-
Mathematica
T[n_, k_]:= T[n, k]= If[n<0 || k<0, 0, If[k==0 || k==n, 1, 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 23 2020 *)
-
PARI
T(n,k) = if(n<0 || k<0, 0, if(k==0 || k==n, 1, 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
-
Sage
@CachedFunction def T(n, k): if (n<0 or k<0): return 0 elif (k==0 or k==n): return 1 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
Comments