login
Number of ways to tile a fixed 3 X n square grid with 1 X 1, 2 X 2, and 1 X 2 tiles.
2

%I #23 Nov 11 2024 22:29:01

%S 1,3,26,163,1125,7546,51055,344525,2326760,15709977,106079739,

%T 716273960,4836475953,32657123299,220509407586,1488936665619,

%U 10053686907525,67885102598386,458377829683919,3095086053853821,20898824215523616

%N Number of ways to tile a fixed 3 X n square grid with 1 X 1, 2 X 2, and 1 X 2 tiles.

%H Andrew Woods, <a href="/A226351/b226351.txt">Table of n, a(n) for n = 0..100</a>

%H <a href="/index/Rec#order_06">Index entries for linear recurrences with constant coefficients</a>, signature (4,19,1,-26,1,6).

%F Recurrence: a(n) = 4*a(n-1)+19*a(n-2)+a(n-3)-26*a(n-4)+a(n-5)+6*a(n-6) for n>5, a(0)=1, a(1)=3, a(2)=26, a(3)=163, a(4)=1125, a(5)=7546.

%F G.f.: (1-x-5*x^2+x^3+2*x^4)/(1-4*x-19*x^2-x^3+26*x^4-x^5-6*x^6).

%t LinearRecurrence[{4, 19, 1, -26, 1, 6}, {1, 3, 26, 163, 1125, 7546}, 21] (* _T. D. Noe_, Jun 04 2013 *)

%o (Python)

%o # Depth-first search on 3 rows and n columns

%o # Produces "count" and the list "result[]"

%o # Omit the 2nd-last line if memory runs low

%o n=5; rows=3

%o count=0; result=[]

%o def f(b, row=0, col=-1):

%o global count

%o for i in range(row, len(b)):

%o for j in range((col+1 if i==row else 0), len(b[0])):

%o if b[i][j]==' ':

%o if i<len(b)-1:

%o if b[i+1][j]==' ':

%o f(b[:i]+[b[i][:j]+'^'+b[i][j+1:], b[i+1][:j]+'V'+b[i+1][j+1:]]+b[i+2:], i, j)

%o if j<len(b[0])-1:

%o if b[i][j+1]==' ' and b[i+1][j:j+2]==' ':

%o f(b[:i]+[b[i][:j]+'/\\'+b[i][j+2:], b[i+1][:j]+'\\/'+b[i+1][j+2:]]+b[i+2:], i, j)

%o if j<len(b[0])-1:

%o if b[i][j+1]==' ':

%o f(b[:i]+[b[i][:j]+'<>'+b[i][j+2:]]+b[i+1:], i, j)

%o count+=1

%o result.append(b) # omit this line

%o f([' '*n]*rows); print(count)

%Y Cf. A226348.

%K nonn,easy

%O 0,2

%A _Andrew Woods_, Jun 04 2013