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.

A110910 Configurations in the evolution of a line of n cells in Conway's Game of Life, with 0=infinity. For periodic evolutions, a(n)=(preperiod length)+(period length). For non-periodic evolutions, a(n)=0.

This page as a plain text file.
%I A110910 #12 Apr 07 2025 12:31:11
%S A110910 1,2,2,2,3,8,13,15,49,22,17,17,16,26,29,41,34,25,21,26,21,21,36,31,29,
%T A110910 95,25,29,34,38,105,150,61,582,43,58,92,108,263,277,50,212,59,53,57,
%U A110910 99,55,170,196,812,105,54,53,85,59,81,0,418,63,63,314,117,118,170,236,104
%N A110910 Configurations in the evolution of a line of n cells in Conway's Game of Life, with 0=infinity. For periodic evolutions, a(n)=(preperiod length)+(period length). For non-periodic evolutions, a(n)=0.
%C A110910 If nothing catches up with an outbound glider, then a(n)=0 for n>=1000 because when you watch the horizontal 1000-line evolve in a simulator, around the 490th generation, gliders fly away from the left and right corners _before_ the non-chaotic growing in the middle has finished, so you will see the same local picture in the 490th generation of longer lines.
%D A110910 Berlekamp/Conway/Guy, Winning Ways ..., 2nd ed, vol. 4, chapter 25
%e A110910 a(0)=1 because there is only the empty configuration. a(10)=2+15 because the 10-line needs two steps to become a pentadecathlon. a(56)=0 because the 56-line sends four gliders to outer space.
%o A110910 (Haskell)
%o A110910 {- program for verification of periodic cases. The non-periodic cases listed here evolve into a periodic kernel plus gliders whose paths ahead do not intersect each other or the kernel (gliders marching in single file are not counted as intersecting). -}
%o A110910 import Data.Set
%o A110910 main = print [if n `elem` known then 0 else a n | n<-[0..105]]
%o A110910 known = [56, 71, 72, 75, 78, 82, 85, 86, 87, 88, 91, 92, 93, 94, 96, 98, 100, 102, 103, 105]
%o A110910 a n = count empty (iterate evolve (fromList [(x, 0) | x<-[1..n]]))
%o A110910 neighbors (x, y) = fromList
%o A110910                   [(x+u, y+v) | u<-[ -1, 0, 1], v<-[ -1, 0, 1], (u, v)/=(0, 0)]
%o A110910 evolve life =
%o A110910   let fil f = Data.Set.filter
%o A110910               (\x-> f (size (life `intersection` neighbors x)))
%o A110910   in (life `difference` fil (\k-> k<2 || k>3) life) `union` fil (== 3)
%o A110910      (unions (Prelude.map neighbors (elems life)) `difference` life)
%o A110910 count o (x:xs) | x `member` o = 0
%o A110910                | otherwise = 1 + count (o `union` singleton x) xs
%Y A110910 Cf. A061342, A019473, A056605, A056614, A055397, A099733, A089520, A098720, A056613.
%K A110910 nonn,uned
%O A110910 0,2
%A A110910 Paul Stoeber (pstoeber(AT)uni-potsdam.de), Oct 03 2005