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 A254109 #52 Jun 11 2015 08:22:13 %S A254109 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25, %T A254109 26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48, %U A254109 49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,21,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,7 %N A254109 If n <= 63, a(n) = n; for n > 63: a(32n + 14) = 8*n + 5, a(64n + 30) = 4*n + 3, and for other cases with n > 63: a(2n) = 2*a(n), a(2n+1) = 2*a(n) + 1. %C A254109 This sequence is a rewriting-recurrence which attempts to contract the perimeter of binary boundary coded holeless polyhexes and other fusenes by 2 or 4 edges, where first possible (from the least significant end of n), and if no such contraction is possible, then it fixes n. Together with recurrence A258009 can be used to obtain the terms of A258012, please see comments there. %H A254109 Antti Karttunen, <a href="/A254109/b254109.txt">Table of n, a(n) for n = 0..8191</a> %F A254109 If n <= 63, a(n) = n; for n > 63: a(32n + 14) = 8*n + 5, a(64n + 30) = 4*n + 3, and for other cases with n > 63: a(2n) = 2*a(n), a(2n+1) = 2*a(n) + 1. %e A254109 The first term where a(n) is different from n occurs at n=78, as 78 = "1001110" in binary, where the clause a(32n + 14) = 8*n + 5 will rewrite the trailing "01110" part as "101", resulting binary string "10101" = 21 in decimal. %o A254109 (Scheme, two variants, the first one utilizing a memoizing definec-macro) %o A254109 (definec (A254109 n) (cond ((<= n 63) n) ((= 14 (modulo n 32)) (+ 5 (* 8 (floor->exact (/ n 32))))) ((= 30 (modulo n 64)) (+ 3 (* 4 (floor->exact (/ n 64))))) (else (+ (modulo n 2) (* 2 (A254109 (floor->exact (/ n 2)))))))) %o A254109 ;; Faster, iterative version: %o A254109 (define (A254109 n) (let loop ((n n) (s 0) (p2 1)) (cond ((<= n 63) (+ (* p2 n) s)) ((= 14 (modulo n 32)) (+ (* p2 8 (floor->exact (/ n 32))) s (* p2 5))) ((= 30 (modulo n 64)) (+ (* p2 4 (floor->exact (/ n 64))) s (* p2 3))) ((even? n) (loop (/ n 2) s (+ p2 p2))) (else (loop (/ (- n 1) 2) (+ s p2) (+ p2 p2)))))) %Y A254109 Cf. A255561, A255568, A258009, A258012. %K A254109 nonn,base %O A254109 0,3 %A A254109 _Antti Karttunen_, Mar 11 2015 %E A254109 Recurrence corrected to match the intended usage by _Antti Karttunen_, Jun 05 2015