|
|
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.
|
|
12
|
|
|
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, 31, 30, 24, 25, 27, 26, 48, 49, 51, 50, 52, 53, 55, 54, 60, 61, 63, 62, 56, 57, 59, 58, 32, 33, 35, 34, 36, 37, 39, 38, 44, 45, 47, 46, 40, 41, 43, 42, 64, 65, 67, 66, 68, 69, 71, 70
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,3
|
|
LINKS
|
|
|
FORMULA
|
|
|
EXAMPLE
|
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.
|
|
MAPLE
|
a:= proc(n) option remember; `if`(n=0, 0,
a(iquo(n, 4, 'r'))*4+[0, 1, 3, 2][r+1])
end:
|
|
MATHEMATICA
|
Table[FromDigits[IntegerDigits[n, 4]/.{2->a, 3->b}/.{a->3, b->2}, 4], {n, 0, 75}] (* Harvey P. Dale, Nov 29 2011 *)
|
|
PROG
|
(Python)
def a000695(n):
n=bin(n)[2:]
x=len(n)
return sum([int(n[i])*4**(x - 1 - i) for i in range(x)])
def a059905(n): return sum([(n>>2*i&1)<<i for i in range(len(bin(n)[2:])//2 + 1)])
def a059906(n):
x=[int(k) for k in list(bin(n)[2:])][::-1]
return sum([x[2*i + 1]*2**i for i in range(len(x)//2)])
def a(n): return a000695(a059905(n)^a059906(n)) + 2*a000695(a059906(n))
(PARI) f(d) = if (d==2, 4, if (x==d, 2, d));
a(n) = fromdigits(apply(f, digits(n, 4)), 4); \\ Michel Marcus, Jun 28 2017
(C) uint32_t a(uint32_t n) { return n ^ ((n >> 1) & 0x55555555); } // Falk Hüffner, Jan 22 2022
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base,easy
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|