%I #14 Jan 24 2025 12:15:33
%S 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,
%T 83,84,85,90,91,92,110,111,112,117,118,119,124,125,126,184,185,186,
%U 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
%N 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.
%C Each vertex of this tree has degree 4. If a vertex has at least 4 chips, the vertex fires and one chip is sent to each neighbor. The root sends 1 chip to its three children and one chip to itself.
%C The order of the firings doesn't affect the number of firings.
%C The corresponding sequence for a binary tree is in A376131.
%C The corresponding sequence for a ternary tree is in A378724.
%H Dillan Agrawal, Selena Ge, Jate Greene, Tanya Khovanova, Dohun Kim, Rajarshi Mandal, Tanish Parida, Anirudh Pulugurtha, Gordon Redwine, Soham Samanta, and Albert Xu, <a href="https://arxiv.org/abs/2501.06675">Chip-Firing on Infinite k-ary Trees</a>, arXiv:2501.06675 [math.CO], 2025. See p. 13.
%H Wikipedia, <a href="https://en.wikipedia.org/wiki/Chip-firing_game">Chip-firing game</a>.
%e 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.
%e 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.
%o (Python)
%o from math import floor,log
%o def to_base(number, base): # Converts number to a base
%o digits = []
%o while number:
%o digits.append(number % base)
%o number //= base
%o return list(digits)
%o def c(m,k,convert): # Calculates the c function
%o try:
%o num = to_base(convert,k)[m]
%o except:
%o num = 0
%o return num+1
%o def F(N,k): # Calculated the F function
%o n = floor(log(N*(k-1)+1)/log(k))
%o convert = N - int((k**n-1)/(k-1))
%o ans = 0
%o for m in range(1,n):
%o ans += (m*(k**(m+1))-(m+1)*(k**m)+1)*c(m,k,convert)
%o return int(ans/((k-1)**2))
%o seq = []
%o for i in range(1,3*100+1,3): # Change this number to get more terms in the sequence
%o seq.append(F(i+1,3))
%o print(', '.join(map(str,seq)),end='\n\n')
%Y Cf. A376131, A378724, A378725, A378727, A378728.
%K nonn
%O 1,3
%A _Tanya Khovanova_ and the MIT PRIMES STEP senior group, Dec 05 2024