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.

A163241 Simple self-inverse permutation: Write n in base 4, then replace each digit '2' with '3' and vice versa, then convert back to decimal.

This page as a plain text file.
%I A163241 #29 Jan 25 2022 09:56:14
%S A163241 0,1,3,2,4,5,7,6,12,13,15,14,8,9,11,10,16,17,19,18,20,21,23,22,28,29,
%T A163241 31,30,24,25,27,26,48,49,51,50,52,53,55,54,60,61,63,62,56,57,59,58,32,
%U A163241 33,35,34,36,37,39,38,44,45,47,46,40,41,43,42,64,65,67,66,68,69,71,70
%N A163241 Simple self-inverse permutation: Write n in base 4, then replace each digit '2' with '3' and vice versa, then convert back to decimal.
%H A163241 A. Karttunen, <a href="/A163241/b163241.txt">Table of n, a(n) for n = 0..1023</a>
%H A163241 <a href="/index/Per#IntegerPermutation">Index entries for sequences that are permutations of the natural numbers</a>
%F A163241 a(n) = A000695(A003987bi(A059905(n),A059906(n))) + 2*A000695(A059906(n)), where A003987bi is binary XOR.
%e A163241 43 in quaternary base (A007090) is written as '223' (2*16 + 2*4 + 3), which is then mapped to '332' = 3*16 + 3*4 + 2 = 62, thus a(43) = 62, and likewise a(62) = 43.
%p A163241 a:= proc(n) option remember; `if`(n=0, 0,
%p A163241       a(iquo(n, 4, 'r'))*4+[0, 1, 3, 2][r+1])
%p A163241     end:
%p A163241 seq(a(n), n=0..71);  # _Alois P. Heinz_, Jan 25 2022
%t A163241 Table[FromDigits[IntegerDigits[n,4]/.{2->a,3->b}/.{a->3,b->2},4],{n,0,75}] (* _Harvey P. Dale_, Nov 29 2011 *)
%o A163241 (Scheme) (define (A163241 n) (+ (A000695 (A003987bi (A059905 n) (A059906 n))) (* 2 (A000695 (A059906 n)))))
%o A163241 (Python)
%o A163241 def a000695(n):
%o A163241     n=bin(n)[2:]
%o A163241     x=len(n)
%o A163241     return sum([int(n[i])*4**(x - 1 - i) for i in range(x)])
%o A163241 def a059905(n): return sum([(n>>2*i&1)<<i for i in range(len(bin(n)[2:])//2 + 1)])
%o A163241 def a059906(n):
%o A163241     x=[int(k) for k in list(bin(n)[2:])][::-1]
%o A163241     return sum([x[2*i + 1]*2**i for i in range(len(x)//2)])
%o A163241 def a(n): return a000695(a059905(n)^a059906(n)) + 2*a000695(a059906(n))
%o A163241 print([a(n) for n in range(101)]) # _Indranil Ghosh_, Jun 26 2017
%o A163241 (PARI) f(d) = if (d==2, 4, if (x==d, 2, d));
%o A163241 a(n) = fromdigits(apply(f, digits(n, 4)), 4); \\ _Michel Marcus_, Jun 28 2017
%o A163241 (C) uint32_t a(uint32_t n) { return n ^ ((n >> 1) & 0x55555555); } // _Falk Hüffner_, Jan 22 2022
%Y A163241 Cf. A048647, A007090, A003987.
%K A163241 nonn,base,easy
%O A163241 0,3
%A A163241 _Antti Karttunen_, Jul 29 2009
%E A163241 Edited by _Charles R Greathouse IV_, Nov 01 2009