login
Number of ways to stack n triangles symmetrically (pointing upwards or downwards depending on row parity).
1

%I #37 Nov 08 2023 12:35:12

%S 1,1,1,2,2,3,3,6,7,12,12,21,23,39,43,74,81,138,151,257,281,479,525,

%T 895,981,1671,1830,3116,3414,5813,6370,10847,11887,20239,22177,37758,

%U 41375,70442,77193,131425,144020,245197,268693,457451,501288,853446,935235,1592242,1744834,2970580,3255261

%N Number of ways to stack n triangles symmetrically (pointing upwards or downwards depending on row parity).

%e a(9) = 12.

%e * * * * * * * * *

%e / \ / \ / \ / \ / \ / \ / \ / \ / \

%e *---*---*---*---*---*---*---*---*---*

%e .

%e * * * *---* * * *

%e / \ / \ / \ / \ / \ / \ / \ / \

%e *---*---*---*---*---*---*---*---*

%e .

%e * * *---*---* * *

%e / \ / \ / \ / \ / \ / \ / \

%e *---*---*---*---*---*---*---*

%e .

%e * *---* * *---* *

%e / \ / \ / \ / \ / \ / \ / \

%e *---*---*---*---*---*---*---*

%e .

%e *---* * * * *---*

%e / \ / \ / \ / \ / \ / \ / \

%e *---*---*---*---*---*---*---*

%e .

%e * *---*---*---* *

%e / \ / \ / \ / \ / \ / \

%e *---*---*---*---*---*---*

%e .

%e *---* *---* *---*

%e / \ / \ / \ / \ / \ / \

%e *---*---*---*---*---*---*

%e .

%e *---*---*---*---*

%e / \ / \ / \ / \ / \

%e *---*---*---*---*---*

%e .

%e * *

%e / \ / \

%e * *---*---* *

%e / \ / \ / \ / \ / \

%e *---*---*---*---*---*

%e .

%e * *

%e / \ / \

%e *---* * *---*

%e / \ / \ / \ / \ / \

%e *---*---*---*---*---*

%e .

%e * *

%e / \ / \

%e *---*---*---*

%e / \ / \ / \ / \

%e *---*---*---*---*

%e .

%e *

%e / \

%e *---*

%e / \ / \

%e *---*---*

%e / \ / \ / \

%e *---*---*---*

%e .

%p Motzk := proc(x,y,twoar)

%p option remember;

%p if x =0 then

%p if y <> 0 or twoar <>0 then

%p return 0;

%p else

%p return 1;

%p end if;

%p elif y < 0 or y > x or twoar <x then

%p return 0 ;

%p elif y = 0 then

%p if modp(x,2) = 0 then

%p return procname(x-1,y+1,twoar-2*y-1) ;

%p else

%p return 0 ;

%p end if;

%p elif modp(y,2) = modp(x,2) then

%p return procname(x-1,y+1,twoar-2*y-1)

%p +procname(x-1,y,twoar-2*y)

%p +procname(x-1,y-1,twoar-2*y+1) ;

%p else

%p return procname(x-1,y,twoar-2*y) ;

%p end if ;

%p end proc:

%p A316585 := proc(twoar)

%p local a,x,y ;

%p a:= 0 ;

%p for x from 0 to twoar do

%p for y from 0 to x do

%p a := a+Motzk(x,y,twoar) ;

%p end do:

%p end do:

%p a ;

%p end proc:

%p seq(A316585(n),n=0..50) ; # _R. J. Mathar_, Aug 23 2018

%t Motzk[x_, y_, twoar_] := Motzk[x, y, twoar] = Which[

%t x == 0, If[y != 0 || twoar != 0, 0, 1],

%t y < 0 || y > x || twoar < x, 0,

%t y == 0 , If[Mod[x, 2] == 0, Motzk[x - 1, y + 1, twoar - 2y - 1], 0],

%t Mod[y, 2] == Mod[x, 2], Motzk[x - 1, y + 1, twoar - 2y - 1] + Motzk[x - 1, y, twoar - 2y] + Motzk[x - 1, y - 1, twoar - 2y + 1],

%t True, Motzk[x - 1, y, twoar - 2y]];

%t A316585[twoar_] := Module[{a, x, y}, a = 0; For[x = 0, x <= twoar , x++, For[y = 0, y <= x, y++, a = a + Motzk[x, y, twoar]]]; a];

%t Table[A316585[n], {n, 0, 50}] (* _Jean-François Alcover_, Nov 08 2023, after _R. J. Mathar_ *)

%Y Cf. A224704, A316384.

%K nonn

%O 0,4

%A _Seiichi Manyama_, Jul 07 2018

%E a(36)-a(50) from _R. J. Mathar_, Aug 23 2018