login
Triangle read by rows: T(n,0)=1, T(n,n)=1, T(n, k) = 2*(n-k)*T(n-1, k-1) + 2*k*T(n-1, k).
2

%I #13 Sep 10 2019 21:36:30

%S 1,1,1,1,4,1,1,12,12,1,1,30,96,30,1,1,68,564,564,68,1,1,146,2800,6768,

%T 2800,146,1,1,304,12660,63008,63008,12660,304,1,1,622,54288,504648,

%U 1008128,504648,54288,622,1,1,1260,225860,3679344,13111504,13111504,3679344,225860,1260,1

%N Triangle read by rows: T(n,0)=1, T(n,n)=1, T(n, k) = 2*(n-k)*T(n-1, k-1) + 2*k*T(n-1, k).

%H G. C. Greubel, <a href="/A099759/b099759.txt">Rows n = 0..100 of triangle, flattened</a>

%F Sum_{k=0..n} T(n, k) = 2*(n-1)*(Sum_{k=0..n-1} T(n-1, k)) + 2 = A099760(n).

%e Triangle begins:

%e 1;

%e 1, 1;

%e 1, 4, 1;

%e 1, 12, 12, 1;

%e 1, 30, 96, 30, 1;

%e 1, 68, 564, 564, 68, 1;

%p T:=proc(n,k) if k=0 or n=k then 1 elif k>n then 0 else 2*(n-k)*T(n-1,k-1)+2*k*T(n-1,k) fi end: for n from 0 to 9 do [seq(T(n,k),k=0..n)] od; # gives the triangle row by row # _Emeric Deutsch_, Nov 16 2004

%t T[n_, k_]:= T[n, k]= If[k==0 || k==n, 1, 2*(n-k)*T[n-1, k-1] +2*k*T[n-1, k]]; Table[T[n, k], {n,0,9}, {k,0,n}]//Flatten (* _G. C. Greubel_, Sep 03 2019 *)

%o (PARI) T(n,k) = if(k==0 || k==n, 1, 2*(n-k)*T(n-1, k-1) + 2*k*T(n-1, k));

%o for(n=0,9, for(k=0,n, print1(T(n,k), ", "))) \\ _G. C. Greubel_, Sep 03 2019

%o (Sage)

%o def T(n, k):

%o if (k==0 or k==n): return 1

%o else: return 2*k*T(n-1, k) + 2*(n-k)* T(n-1, k-1)

%o [[T(n, k) for k in (0..n)] for n in (0..9)] # _G. C. Greubel_, Sep 03 2019

%o (GAP)

%o T:= function(n,k)

%o if k=0 or k=n then return 1;

%o else return 2*(n-k)*T(n-1,k-1) + 2*k*T(n-1,k);

%o fi;

%o end;

%o Flat(List([0..9], n-> List([0..n], k-> T(n,k) ))); # _G. C. Greubel_, Sep 03 2019

%Y Cf. A060187, A099760.

%K easy,tabl,nonn

%O 0,5

%A _Miklos Kristof_, Nov 11 2004

%E More terms from _Emeric Deutsch_, Nov 16 2004