A378726 The total number of fires on a rooted undirected infinite ternary tree with a self-loop at the root, when the chip-firing process starts with 3n chips at the root.
0, 1, 2, 3, 8, 9, 10, 15, 16, 17, 22, 23, 24, 42, 43, 44, 49, 50, 51, 56, 57, 58, 76, 77, 78, 83, 84, 85, 90, 91, 92, 110, 111, 112, 117, 118, 119, 124, 125, 126, 184, 185, 186, 191, 192, 193, 198, 199, 200, 218, 219, 220, 225, 226, 227, 232, 233, 234, 252, 253, 254, 259, 260, 261, 266, 267, 268, 326
Offset: 1
Keywords
Examples
Suppose we start with 12 chips at the root. Then the root will fire 3 times, 12 chips in total, 3 of which return to the root. The stable configuration will have 3 chips at the root and every child of the root. Thus, a(4) = 3. Suppose we start with 15 chips at the root. Then the root will fire 3 times, sending away 9 chips. After that, the root can fire again, sending away 3 chips and keeping 3 chips. Now, each child of the root has four chips, and they can also fire. Firing them returns 3 chips to the root. Thus, the root can fire one more time. The stable configuration will have 3 chips at the root and 1 chip at each child and grandchild. The root fires 5 times, and each child fires three times. Thus, a(5) = 8.
Links
- Yifan Xie, Table of n, a(n) for n = 1..10000
- Dillan Agrawal, Selena Ge, Jate Greene, Tanya Khovanova, Dohun Kim, Rajarshi Mandal, Tanish Parida, Anirudh Pulugurtha, Gordon Redwine, Soham Samanta, and Albert Xu, Chip-Firing on Infinite k-ary Trees, arXiv:2501.06675 [math.CO], 2025. See p. 13.
- Wikipedia, Chip-firing game.
Programs
-
Python
from math import floor,log def to_base(number, base): # Converts number to a base digits = [] while number: digits.append(number % base) number //= base return list(digits) def c(m,k,convert): # Calculates the c function try: num = to_base(convert,k)[m] except: num = 0 return num+1 def F(N,k): # Calculated the F function n = floor(log(N*(k-1)+1)/log(k)) convert = N - int((k**n-1)/(k-1)) ans = 0 for m in range(1,n): ans += (m*(k**(m+1))-(m+1)*(k**m)+1)*c(m,k,convert) return int(ans/((k-1)**2)) seq = [] for i in range(1,3*100+1,3): # Change this number to get more terms in the sequence seq.append(F(i+1,3)) print(', '.join(map(str,seq)),end='\n\n')
Comments