login
Pascal's square pyramid read by slices, each slice being read by rows. Each entry in slice n is the sum of the 4 entries above it in slice n-1.
2

%I #27 Oct 31 2023 17:58:02

%S 1,1,1,1,1,1,2,1,2,4,2,1,2,1,1,3,3,1,3,9,9,3,3,9,9,3,1,3,3,1,1,4,6,4,

%T 1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1,1,5,10,10,5,1,5,

%U 25,50,50,25,5,10,50,100,100,50,10,10,50,100,100,50,10,5,25,50,50,25,5,1,5,10

%N Pascal's square pyramid read by slices, each slice being read by rows. Each entry in slice n is the sum of the 4 entries above it in slice n-1.

%C Element (i,j) of slice n is the coefficient of x^i * y^j in the expansion of ((1+x)*(1+y))^n. - _Eitan Y. Levine_, Sep 03 2023

%H The Lost Math Lessons, <a href="http://lostmathlessons.blogspot.com/2015/03/pascals-pyramids.html">Pascal's Pyramids</a>, Friday, March 6, 2015.

%F From _Eitan Y. Levine_, Sep 03 2023: (Start)

%F C(n,i)*C(n,j) gives the (i,j) element in slice n, where C(n,k) are the binomial coefficients A007318.

%F G.f.: 1/(1-z(1+x)(1+y)) = Sum_{n>=0,i=0..n,j=0..n} T(n,i,j) * z^n * x^i * y^j

%F G.f. for slice n: ((1+x)*(1+y))^n = Sum_{i=0..n,j=0..n} T(n,i,j) * x^i * y^j (End)

%e The first 4 slices are

%e 1..1 1..1 2 1..1 3 3 1

%e ...1 1..2 4 2..3 9 9 3

%e ........1 2 1..3 9 9 3

%e ...............1 3 3 1

%p p:=n->seq(seq(binomial(n,i)*binomial(n,j),j=0..n),i=0..n): seq(p(n),n=0..5); # _Emeric Deutsch_, Nov 18 2004

%t A[m_]:=Module[{pt=Table[ConstantArray[1,{i,i}],{i,m}]},For[i=3,i<=m,i++,For[j=2,j<=i-1,j++,pt[[i,j,1]]=pt[[i-1,j-1,1]]+pt[[i-1,j,1]];pt[[i,1,j]]=pt[[i,j,1]];pt[[i,i,j]]=pt[[i,j,1]];pt[[i,j,i]]=pt[[i,j,1]];];For[j=2,j<=i-1,j++,For[k=2,k<=i-1,k++,pt[[i,j,k]]=pt[[i-1,j,k]]+pt[[i-1,j,k-1]]+pt[[i-1,j-1,k]]+pt[[i-1,j-1,k-1]];];];];pt//Flatten]; A[6] (* _Robert P. P. McKone_, Sep 14 2023, made from the PARI code *)

%o (PARI) { pt=vector(10,i,matrix(i,i,j,k,1)); for (i=3,10, for (j=2,i-1, pt[i][j,1]=pt[i-1][j-1,1]+pt[i-1][j,1]; pt[i][1,j]=pt[i][j,1]; pt[i][i,j]=pt[i][j,1]; pt[i][j,i]=pt[i][j,1]; ); for(j=2,i-1, for (k=2,i-1, pt[i][j,k]=pt[i-1][j,k]+pt[i-1][j,k-1]+pt[i-1][j-1,k]+pt[i-1][j-1,k-1]))); pt }

%o (Haskell)

%o a086754 n = a086754_list !! (n-1)

%o a086754_list = concat $ concat $ iterate ([[1,1],[1,1]] *) [1]

%o instance Num a => Num [a] where

%o fromInteger k = [fromInteger k]

%o (p:ps) + (q:qs) = p + q : ps + qs

%o ps + qs = ps ++ qs

%o (p:ps) * qs'@(q:qs) = p * q : ps * qs' + [p] * qs

%o _ * _ = []

%o -- _Reinhard Zumkeller_, Apr 02 2011

%Y Consider the sequence s[i, j](n) obtained by considering the (i, j)-th entry of the n-th slice. Then if [i, j]= [3, 2] we get A006002, if [3, 3] we get A000537, if [4, 2] we get A004320, if [4, 3] we get A004282.

%Y Cf. A046816.

%K nonn,easy

%O 1,7

%A _Jon Perry_, Jul 31 2003

%E More terms from _Emeric Deutsch_, Nov 18 2004