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.

A035928 Numbers n such that BCR(n) = n, where BCR = binary-complement-and-reverse = take one's complement then reverse bit order.

Original entry on oeis.org

2, 10, 12, 38, 42, 52, 56, 142, 150, 170, 178, 204, 212, 232, 240, 542, 558, 598, 614, 666, 682, 722, 738, 796, 812, 852, 868, 920, 936, 976, 992, 2110, 2142, 2222, 2254, 2358, 2390, 2470, 2502, 2618, 2650, 2730, 2762, 2866, 2898, 2978, 3010, 3132, 3164, 3244
Offset: 1

Views

Author

Keywords

Comments

Numbers n such that A036044(n) = n.
Also: numbers such that n+BR(n) is in A000225={2^k-1} (with BR = binary reversed). - M. F. Hasler, Dec 17 2007
Also called "antipalindromes". - Jeffrey Shallit, Feb 04 2022

Examples

			38 is such a number because 38=100110; complement to get 011001, then reverse bit order to get 100110.
		

Crossrefs

Cf. A061855.
Intersection of A195064 and A195066; cf. A195063, A195065.

Programs

  • Haskell
    a035928 n = a035928_list !! (n-1)
    a035928_list = filter (\x -> a036044 x == x) [0,2..]
    -- Reinhard Zumkeller, Sep 16 2011
    
  • Maple
    [seq(ReflectBinSeq(j,(floor_log_2(j)+1)),j=1..256)];
    ReflectBinSeq := (x,n) -> (((2^n)*x)+binrevcompl(x));
    binrevcompl := proc(nn) local n,z; n := nn; z := 0; while(n <> 0) do z := 2*z + ((n+1) mod 2); n := floor(n/2); od; RETURN(z); end;
    floor_log_2 := proc(n) local nn,i: nn := n; for i from -1 to n do if(0 = nn) then RETURN(i); fi: nn := floor(nn/2); od: end; # Computes essentially the same as floor(log[2](n))
    # alternative Maple program:
    q:= n-> (l-> is(n=add((1-l[-i])*2^(i-1), i=1..nops(l))))(Bits[Split](n)):
    select(q, [$1..3333])[];  # Alois P. Heinz, Feb 10 2021
  • Mathematica
    bcrQ[n_]:=Module[{idn2=IntegerDigits[n,2]},Reverse[idn2/.{1->0,0->1}] == idn2]; Select[Range[3200],bcrQ] (* Harvey P. Dale, May 24 2012 *)
  • PARI
    for(n=1,1000,l=length(binary(n)); b=binary(n); if(sum(i=1,l,abs(component(b,i)-component(b,l+1-i)))==l,print1(n,",")))
    
  • PARI
    for(i=1,999,if(Set(vecextract(t=binary(i),"-1..1")+t)==[1],print1(i","))) \\ M. F. Hasler, Dec 17 2007
    
  • PARI
    a(n) = my (b=binary(n)); (n+1)*2^#b-fromdigits(Vecrev(b),2)-1 \\ Rémy Sigrist, Mar 15 2021
    
  • Python
    def comp(s): z, o = ord('0'), ord('1'); return s.translate({z:o, o:z})
    def BCR(n): return int(comp(bin(n)[2:])[::-1], 2)
    def aupto(limit): return [m for m in range(limit+1) if BCR(m) == m]
    print(aupto(3244)) # Michael S. Branicky, Feb 10 2021
    
  • Python
    from itertools import count, islice
    def A035928_gen(startvalue=1): # generator of terms >= startvalue
        return filter(lambda n:n==int(format(~n&(1<<(m:=n.bit_length()))-1,'0'+str(m)+'b')[::-1],2),count(max(startvalue,1)))
    A035928_list = list(islice(A035928_gen(),30)) # Chai Wah Wu, Jun 30 2022

Formula

If offset were 0, a(2n+1) - a(2n) = 2^floor(log_2(n)+1).
a(n) = n * A062383(n) + A036044(n). - Rémy Sigrist, Jun 11 2022

Extensions

More terms from Erich Friedman