%I #17 Sep 24 2024 02:13:30
%S 1,25,25,49,25,289,49,361,25,625,289,361,49,961,361,625,25,625,625,
%T 1225,289,3721,361,5041,49,1225,961,1681,361,5041,625,5929,25,625,625,
%U 1225,625,7225,1225,9025,289,7225,3721,5041,361,8281,5041,5929,49,1225
%N 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.
%C 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.
%H Chai Wah Wu, <a href="/A247650/b247650.txt">Table of n, a(n) for n = 0..200</a>
%H N. J. A. Sloane, <a href="http://arxiv.org/abs/1503.01168">On the Number of ON Cells in Cellular Automata</a>, arXiv:1503.01168, 2015
%F 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.
%o (Python)
%o import sympy
%o from operator import mul
%o from functools import reduce
%o x, y = sympy.symbols('x y')
%o f = ((1/x**2+1/x+1+x+x**2)*(1/y**2+1/y+1+y+y**2)).expand(modulus=2)
%o A247650_list, g = [1], 1
%o for n in range(1, 101):
%o s = [int(d, 2) for d in bin(n)[2:].split('00') if d != '']
%o g = (g*f).expand(modulus=2)
%o if len(s) == 1:
%o A247650_list.append(g.subs([(x, 1), (y, 1)]))
%o else:
%o A247650_list.append(reduce(mul, (A247650_list[d] for d in s)))
%o # _Chai Wah Wu_, Sep 25 2014
%Y Cf. A071053, A247647, A247648, A247649.
%K nonn
%O 0,2
%A _N. J. A. Sloane_, Sep 25 2014