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.
%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