cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

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.

Original entry on oeis.org

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

Views

Author

Tanya Khovanova and the MIT PRIMES STEP senior group, Dec 05 2024

Keywords

Comments

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.
The order of the firings doesn't affect the number of firings.
The corresponding sequence for a binary tree is in A376131.
The corresponding sequence for a ternary tree is in A378724.

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.
		

Crossrefs

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')