|
|
A247650
|
|
Number of terms in expansion of f^n mod 2, where f = (1/x^2+1/x+1+x+x^2)*(1/y^2+1/y+1+y+y^2) mod 2.
|
|
1
|
|
|
1, 25, 25, 49, 25, 289, 49, 361, 25, 625, 289, 361, 49, 961, 361, 625, 25, 625, 625, 1225, 289, 3721, 361, 5041, 49, 1225, 961, 1681, 361, 5041, 625, 5929, 25, 625, 625, 1225, 625, 7225, 1225, 9025, 289, 7225, 3721, 5041, 361, 8281, 5041, 5929, 49, 1225
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,2
|
|
COMMENTS
|
This is the number of cells that are ON after n generations in a two-dimensional cellular automaton defined by the odd-neighbor rule where the neighborhood consists of a 5X5 block of contiguous cells.
|
|
LINKS
|
|
|
FORMULA
|
The values of a(n) for n in A247647 (or A247648) determine all the values, as follows. Parse the binary expansion of n into terms from A247647 separated by at least two zeros: m_1 0...0 m_2 0...0 m_3 ... m_r 0...0. Ignore any number (one or more) of trailing zeros. Then a(n) = a(m_1)*a(m_2)*...*a(m_r). For example, n = 37_10 = 100101_2 is parsed into 1.00.101, and so a(37) = a(1)*a(5) = 25*289 = 7225. This is a generalization of the Run Length Transform.
|
|
PROG
|
(Python)
import sympy
from operator import mul
from functools import reduce
x, y = sympy.symbols('x y')
f = ((1/x**2+1/x+1+x+x**2)*(1/y**2+1/y+1+y+y**2)).expand(modulus=2)
for n in range(1, 101):
....s = [int(d, 2) for d in bin(n)[2:].split('00') if d != '']
....g = (g*f).expand(modulus=2)
....if len(s) == 1:
........A247650_list.append(g.subs([(x, 1), (y, 1)]))
....else:
........A247650_list.append(reduce(mul, (A247650_list[d] for d in s)))
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|