OFFSET
0,5
LINKS
G. C. Greubel, Rows n = 0..100 of triangle, flattened
FORMULA
T(n, k) = number of paths from (0, 0) to (n-k, k) in directed graph having vertices (i, j) and edges (i, j)-to-(i+1, j) and (i, j)-to-(i, j+1) for i, j >= 0 and edges (i, 2h+i+1)-to-(i+1, 2h+i+2) for i >= 0, h>=0.
EXAMPLE
Triangle begins as:
1;
1, 1;
1, 2, 1;
1, 4, 3, 1;
1, 5, 7, 4, 1;
1, 7, 16, 11, 5, 1;
1, 8, 23, 27, 16, 6, 1;
1, 10, 38, 66, 43, 22, 7, 1;
MAPLE
T:= proc(n, k) option remember;
if k=0 or k = n then 1;
elif type(n, 'odd') and k <= (n-1)/2 then
procname(n-1, k-1)+procname(n-2, k-1)+procname(n-1, k) ;
else
procname(n-1, k-1)+procname(n-1, k) ;
end if ;
end proc;
seq(seq(T(n, k), k=0..n), n=0..12); # G. C. Greubel, Oct 29 2019
MATHEMATICA
T[n_, k_]:= T[n, k]= If[k==0 || k==n, 1, If[OddQ[n] && k<=(n-1)/2, T[n-1, k-1] + T[n-2, k-1] + T[n-1, k], T[n-1, k-1] + T[n-1, k] ]]; Table[T[n, k], {n, 0, 12}, {k, 0, n}]//Flatten (* G. C. Greubel, Oct 29 2019 *)
PROG
(PARI) T(n, k) = if(k==0 || k==n, 1, if(n%2==1 && k<=(n-1)/2, T(n-1, k-1) + T(n-2, k-1) + T(n-1, k), T(n-1, k-1) + T(n-1, k) ));
for(n=0, 12, for(k=0, n, print1(T(n, k), ", "))) \\ G. C. Greubel, Oct 29 2019
(Sage)
@CachedFunction
def T(n, k):
if (k==0 or k==n): return 1
elif (mod(n, 2)==1 and k<=(n-1)/2): return T(n-1, k-1) + T(n-2, k-1) + T(n-1, k)
else: return T(n-1, k-1) + T(n-1, k)
[[T(n, k) for k in (0..n)] for n in (0..12)] # G. C. Greubel, Oct 29 2019
(GAP)
T:= function(n, k)
if k=0 or k=n then return 1;
elif (n mod 2)=1 and k<Int(n/2)+1 then return T(n-1, k-1)+T(n-2, k-1) +T(n-1, k);
else return T(n-1, k-1) + T(n-1, k);
fi;
end;
Flat(List([0..12], n-> List([0..n], k-> T(n, k) ))); # G. C. Greubel, Oct 29 2019
CROSSREFS
KEYWORD
nonn,tabl
AUTHOR
EXTENSIONS
Offset corrected by Sean A. Irvine, Oct 25 2019
More terms added by G. C. Greubel, Oct 29 2019
STATUS
approved