A206925 Number of contiguous palindromic bit patterns in the binary representation of n.
1, 2, 3, 4, 4, 4, 6, 7, 6, 6, 6, 6, 6, 7, 10, 11, 9, 8, 8, 8, 9, 8, 9, 9, 8, 8, 9, 9, 9, 11, 15, 16, 13, 11, 11, 11, 10, 10, 11, 11, 10, 12, 11, 10, 11, 11, 13, 13, 11, 10, 11, 10, 11, 11, 12, 12, 11, 11, 12, 13, 13, 16, 21, 22, 18, 15, 15, 14, 13, 13, 14, 14
Offset: 1
Examples
a(1) = 1, since 1 = 1_2 is the only palindromic bit pattern; a(4) = 4, since 4 = 100_2 and there are the following palindromic bit patterns: 1, 0, 0, 00; a(5) = 4, since 5 = 101_2 and there are the following palindromic bit patterns: 1, 0, 1, 101; a(8) = 7, since 8 = 1000_2 and there are the following palindromic bit patterns: 1, 0, 0, 0, 00, 00, 000.
Links
Programs
-
Haskell
import Data.Map (fromList, (!), insert) import Data.List (inits, tails) a206925 n = a206925_list !! (n-1) a206925_list = 1 : f [0, 1] (fromList [(Bin [0], 1), (Bin [1], 1)]) where f bs'@(b:bs) m = y : f (succ bs') (insert (Bin bs') y m) where y = m ! (Bin bs) + length (filter (\ds -> ds == reverse ds) $ tail $ inits bs') succ [] = [1]; succ (0:ds) = 1 : ds; succ (1:ds) = 0 : succ ds -- Reinhard Zumkeller, Dec 17 2012
-
PARI
a(n)=n=binary(n);sum(k=0,#n-1,sum(i=1,#n-k,prod(j=0, k\2,n[i+j]==n[i+k-j]))) \\ Charles R Greathouse IV, Mar 21 2012
-
Python
def A206925(n): s = bin(n)[2:] k = len(s) return sum(1 for i in range(k) for j in range(i+1,k+1) if s[i:j] == s[j-1:i-1-k:-1]) # Chai Wah Wu, Jan 31 2023
-
Smalltalk
A206925 "Answers the number of symmetric bit patterns of n as a binary." | m p q n numSym | n := self. n < 2 ifTrue: [^1]. m := n integerFloorLog: 2. p := n printStringRadix: 2. numSym := 0. 1 to: m + 1 do: [:k | 1 to: k do: [:j | q := p copyFrom: j to: k. q = q reverse ifTrue: [numSym := numSym + 1]]]. ^numSym // Hieronymus Fischer, Feb 16 2013
Formula
a(n) <= (m+1)*(m+2)/2, where m = floor(log_2(n)); equality holds if n + 1 is a power of 2.
a(n) >= 2*floor(log_2(n)).
This estimation cannot be improved in general, since equality holds for A206926(n): a(A206926(n)) = 2*floor(log_2(A206926(n))).
Asymptotic behavior:
a(n) = O(log(n)^2).
lim sup a(n)/log_2(n)^2 = 1/2, for n --> infinity.
lim inf a(n)/log_2(n) = 2, for n --> infinity.
Extensions
Comments and formulas added by Hieronymus Fischer, Jan 23 2013
Comments