OFFSET
0,2
COMMENTS
Consider the following chip-firing game on the integer points of the first quadrant (i.e., set of vertices (x, y) where x and y are nonnegative integers): start with 2^n chips at the origin (i.e., point (0, 0)). If a vertex (x, y) has at least 2 chips, it fires by sending one chip to (x+1, y) and one chip to (x, y+1). The vertex (x, y) loses two chips during each firing. The total number of firings in the game is finite. For each nonnegative integer i, we define layer i to be the set of all vertices that have Manhattan distance i from the origin. The term a(n) is the number of layers that ever have chips.
Beginning with the term at index n = 1, this sequence of integers is even.
Below, we have a table for the maximum number of chips at each vertex in the firing process for n=4:
16
8 8
4 8 4
2 6 6 2
1 4 6 4 1
2 5 5 2
1 3 4 3 1
1 3 3 1
1 2 1
1 1
REFERENCES
Caroline Klivans, The Mathematics of Chip-Firing, CRC Press, 2019, Chapter 6.5.
LINKS
Ryota Inagaki, Tanya Khovanova, and Austin Luo, Chip-firing on the Lattice of Nonnegative Integer Points, arXiv:2601.09125 [math.CO], 2026. See p. 12.
Wikipedia, Chip-firing game.
PROG
(Python)
def generate_and_count_rows(n):
l1 = [2**n]
stab = (max(l1) < 2)
layer_count = 1
while not stab:
l2 = [l1[0]//2]
for i in range(1, len(l1)):
l2.append(l1[i]//2 + l1[i-1]//2)
l2.append(l1[len(l1)-1]//2)
l1 = l2
if (max(l1) < 2):
stab = True
if l1[0] == 0:
l1 = l1[1:]
if l1[-1] == 0:
l1 = l1[:len(l1)-1]
layer_count+= 1
return layer_count
for i in range(28):
print(generate_and_count_rows(i))
CROSSREFS
KEYWORD
nonn,more
AUTHOR
EXTENSIONS
a(28)-a(37) from Sean A. Irvine, Dec 10 2025
STATUS
approved
