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 A101856 #55 Feb 16 2025 08:32:55 %S A101856 0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,3,0,0,0,0,0,0,25,67,0,0,0,0,0,0,515, %T A101856 1259,0,0,0,0,0,0,15072,41381,0,0,0,0,0,0,588066,1651922,0,0,0,0,0,0, %U A101856 25263990,73095122,0,0,0,0,0,0,1194909691,3492674650,0,0,0,0,0,0 %N A101856 Number of non-intersecting polygons that it is possible for an accelerating ant to produce with n steps (rotations & reflections not included). On step 1 the ant moves forward 1 unit, then turns left or right and proceeds 2 units, then turns left or right until at the end of its n-th step it arrives back at its starting place. %C A101856 This walk by an accelerating ant can only arrive back at the starting point after n steps where n is 0 or -1 mod(8). %D A101856 Dudeney, A. K. "An Odd Journey Along Even Roads Leads to Home in Golygon City." Sci. Amer. 263, 118-121, 1990. %H A101856 Bert Dobbelaere, <a href="/A101856/a101856.cpp.txt">C++ program</a> %H A101856 L. C. F. Sallows, <a href="http://leesallows.com/files/New%20Pathways.pdf">New Pathways in Serial Isogons</a>, Math. Intell. 14, 55-67, 1992. %H A101856 Lee Sallows, Martin Gardner, Richard K. Guy and Donald Knuth, <a href="http://www.jstor.org/stable/2690648">Serial Isogons of 90 Degrees</a>, Math Mag. 64, 315-324, 1991. %H A101856 Eric Weisstein's World of Mathematics, <a href="https://mathworld.wolfram.com/Golygon.html">Golygon</a> %e A101856 For example: a(7) = 1 because of the following solution: %e A101856 655555... %e A101856 6....4... %e A101856 6....4... %e A101856 6....4... %e A101856 6....4333 %e A101856 6.......2 %e A101856 777777712 %e A101856 where the ant starts at the "1" and moves right 1 space, up 2 spaces and so on... %e A101856 From _Seiichi Manyama_, Sep 23 2017: (Start) %e A101856 a(8) = 1 because of the following solution: %e A101856 (0, 0) -> (1, 0) -> (1, 2) -> (-2, 2) -> (-2, -2) -> (-7, -2) -> (-7, -8) -> (0, -8) -> (0, 0). %e A101856 .....4333 %e A101856 .....4..2 %e A101856 .....4.12 %e A101856 .....4.8. %e A101856 655555.8. %e A101856 6......8. %e A101856 6......8. %e A101856 6......8. %e A101856 6......8. %e A101856 6......8. %e A101856 77777778. %e A101856 a(15) = 1 because of the following solution: %e A101856 (0, 0) -> (1, 0) -> (1, 2) -> (4, 2) -> (4, -2) -> (-1, -2) -> (-1, -8) -> (-8, -8) -> (-8, -16) -> (-17, -16) -> (-17, -26) -> (-28, -26) -> (-28, -14) -> (-15, -14) -> (-15, 0) -> (0, 0). %e A101856 a(16) = 3 because of the following solutions: %e A101856 (0, 0) -> (1, 0) -> (1, 2) -> (4, 2) -> (4, 6) -> (-1, 6) -> (-1, 12) -> (-8, 12) -> (-8, 20) -> (-17, 20) -> (-17, 10) -> (-28, 10) -> (-28, -2) -> (-15, -2) -> (-15, -16) -> (0, -16) -> (0, 0), %e A101856 (0, 0) -> (1, 0) -> (1, 2) -> (4, 2) -> (4, 6) -> (-1, 6) -> (-1, 0) -> (-8, 0) -> (-8, -8) -> (-17, -8) -> (-17, -18) -> (-28, -18) -> (-28, -30) -> (-15, -30) -> (-15, -16) -> (0, -16) -> (0, 0), %e A101856 (0, 0) -> (1, 0) -> (1, 2) -> (4, 2) -> (4, -2) -> (-1, -2) -> (-1, -8) -> (-8, -8) -> (-8, 0) -> (-17, 0) -> (-17, -10) -> (-28, -10) -> (-28, 2) -> (-15, 2) -> (-15, 16) -> (0, 16) -> (0, 0). (End) %o A101856 (Ruby) %o A101856 def A101856(n) %o A101856 ary = [0, 0] %o A101856 b_ary = [[[0, 0], [1, 0], [1, 1], [1, 2]]] %o A101856 s = 4 %o A101856 (3..n).each{|i| %o A101856 s += i %o A101856 t = 0 %o A101856 f_ary, b_ary = b_ary, [] %o A101856 if i % 2 == 1 %o A101856 f_ary.each{|a| %o A101856 b = a.clone %o A101856 x, y = *b[-1] %o A101856 b += (1..i).map{|j| [x + j, y]} %o A101856 b_ary << b if b.uniq.size == s %o A101856 t += 1 if b[-1] == [0, 0] && b.uniq.size == s - 1 %o A101856 c = a.clone %o A101856 x, y = *c[-1] %o A101856 c += (1..i).map{|j| [x - j, y]} %o A101856 b_ary << c if c.uniq.size == s %o A101856 t += 1 if c[-1] == [0, 0] && c.uniq.size == s - 1 %o A101856 } %o A101856 else %o A101856 f_ary.each{|a| %o A101856 b = a.clone %o A101856 x, y = *b[-1] %o A101856 b += (1..i).map{|j| [x, y + j]} %o A101856 b_ary << b if b.uniq.size == s %o A101856 t += 1 if b[-1] == [0, 0] && b.uniq.size == s - 1 %o A101856 c = a.clone %o A101856 x, y = *c[-1] %o A101856 c += (1..i).map{|j| [x, y - j]} %o A101856 b_ary << c if c.uniq.size == s %o A101856 t += 1 if c[-1] == [0, 0] && c.uniq.size == s - 1 %o A101856 } %o A101856 end %o A101856 ary << t %o A101856 } %o A101856 ary[0..n - 1] %o A101856 end %o A101856 p A101856(16) # _Seiichi Manyama_, Sep 24 2017 %Y A101856 Cf. A101857, A006718, A292793. %K A101856 nice,nonn %O A101856 1,16 %A A101856 _Gordon Hamilton_, Jan 27 2005 %E A101856 a(31)-a(70) from _Bert Dobbelaere_, Jan 01 2019