|
|
A320030
|
|
Automaton sum similar to A102376 but using mod 3 instead of mod 2.
|
|
2
|
|
|
1, 4, 13, 4, 16, 52, 13, 52, 121, 4, 16, 52, 16, 64, 208, 52, 208, 484, 13, 52, 121, 52, 208, 484, 121, 484, 1093, 4, 16, 52, 16, 64, 208, 52, 208, 484, 16, 64, 208, 64, 256, 832, 208, 832, 1936, 52, 208, 484, 208, 832, 1936, 484, 1936, 4372, 13, 52, 121, 52
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,2
|
|
COMMENTS
|
The automaton that generates this sequence operates on a grid of cells c(i,j). The cells have three possible values, 0, 1, and 2. The next generation in the CA is calculated by applying the following rule to each cell: c(i,j) = ( c(i+1,j-1) + c(i+1,j+1) + c(i-1,j-1) + c(i-1,j+1) ) mod 3.
Start with a single cell with a value of 1, with all other cells set to 0. For each generation, the term in this sequence c(n) is the aggregate values of all cells in the grid for each discrete generation of the automaton (i.e., not cumulative over multiple generations).
The cellular automaton that generates this sequence has been empirically observed to repeat the number of active cells (4 in this case) if the iteration number N is a power of the modulus + 1. The modulus in this case is 3.
This has been observed to occur with any prime modulus and any starting pattern of cells. I'm picking this particular implementation because it's the same as the one used in A102376.
Counting the active (nonzero) cells instead of taking the sum also creates a different but related sequence. This sequence is the sum of each iteration, and cells in this automaton have values 0, 1, or 2. Only for mod 2 are both the sum and active cell counts the same.
|
|
LINKS
|
|
|
FORMULA
|
|
|
PROG
|
(Python)
import numpy as np
from scipy import signal
frameSize = 301
filter = [[0, 1, 0], [1, 0, 1], [0, 1, 0]] # this defines the CA neighborhood
frame = np.zeros((frameSize, frameSize))
frame[frameSize/2, frameSize/2] = 1
mod = 3
sequence = []
for j in range(140):
frame = signal.convolve2d(frame, filter, mode='same')
frame = np.mod(frame, mod)
sequence.append(np.sum(frame.reshape(1, -1)))
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|