login
Number of tribone tilings of an n-triangle.
1

%I #41 Oct 24 2024 23:52:28

%S 1,0,1,0,0,0,0,0,0,2,0,8,12,0,72,0,0,0,0,0,0,185328,0,4736520,

%T 21617456,0,912370744,0,0,0,0,0,0,3688972842502560,0,

%U 717591590174000896,9771553571471569856,0,3177501183165726091520,0,0,0,0,0,0

%N Number of tribone tilings of an n-triangle.

%C This sequence was requested to be added by the author of the link Code Golf challenge. It is based on the work of J. H. Conway, who proved that n = 12k + 0,2,9,11 if and only if T(n) can be tiled (i.e., exactly covered without overlapping) by tribones.

%H Code Golf Challenge, <a href="https://codegolf.stackexchange.com/q/204669/78850">Number of Distinct Tribone Tilings</a>, posted by CGCC user Bubbler.

%H J. H. Conway and J. C. Lagarias, <a href="http://dx.doi.org/10.1016/0097-3165(90)90057-4">Tiling with Polyominoes and Combinatorial Group Theory</a>, Journal of Combinatorial Theory, Series A 53 (1990), 183-208.

%H James Propp, <a href="https://arxiv.org/abs/2206.06472">Trimer covers in the triangular grid: twenty mostly open problems</a>, arXiv:2206.06472 [math.CO], 2022.

%o (Python) # tribone tilings

%o def h(coords):

%o def anyhex(i, j):

%o c = [x in coords for x in [(i-1, j), (i, j+1), (i+1, j+1), (i+1, j), (i, j-1), (i-1, j-1)]]

%o return any(map(lambda x, y: x and y, c, c[1:] + c[:1]))

%o return all(anyhex(*z) for z in coords)

%o def g(coords):

%o if not coords: return 1

%o #if not h(coords): return 0

%o i, j = min(coords)

%o if (i+1, j+1) not in coords: return 0

%o cases = 0

%o if (i+1, j) in coords: cases += g(coords - {(i, j), (i+1, j), (i+1, j+1)})

%o if (i, j+1) in coords: cases += g(coords - {(i, j), (i, j+1), (i+1, j+1)})

%o return cases

%o def f(n):

%o coords = {(i, j) for i in range(n) for j in range(i+1)}

%o #if n%12 not in [0, 2, 9, 11]: return 0

%o print(n, g(coords) if n%12 in [0, 2, 9, 11] else 0)

%o [f(x) for x in range(21)]

%Y The sequence of nonzero indices is A072065.

%Y Cf. A155219.

%K nonn,hard

%O 0,10

%A _Jonathan Oswald_, May 13 2020

%E Name clarified by _James Propp_, Mar 28 2022