|
|
A053642
|
|
Rotate n one binary digit to the left, drop leading zeros, then rotate one binary digit to the right.
|
|
2
|
|
|
1, 1, 3, 1, 3, 6, 7, 1, 3, 6, 7, 12, 13, 14, 15, 1, 3, 6, 7, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31, 1, 3, 6, 7, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 1
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,3
|
|
COMMENTS
|
|
|
LINKS
|
|
|
FORMULA
|
a(n) = n if 3*2^(k-1) <= n < 2^(k+1);
a(n) = a(n - 2^(k-1)) if 2^k <= n < 3*2^(k-1).
a(2n) = 2a(n) - [a(n)==1], a(2n+1) = 2a(n) + 1. - Ralf Stephan, Sep 16 2003
|
|
EXAMPLE
|
a(22)=14 because starting with 10110 the left rotation produces 01101 written as 1101 (i.e., 13) and the right rotation produces 1110 (i.e., 14).
|
|
MATHEMATICA
|
rtt[f_, n_] := FromDigits[f[IntegerDigits[n, 2]], 2];
Array[rtt[RotateRight, rtt[RotateLeft, #]]&, 100] (* Paolo Xausa, Jan 16 2024 *)
|
|
PROG
|
(PARI) a(n) = n-=1<<logint(n, 2); n + 1<<if(n, logint(n, 2)+1); \\ Kevin Ryde, Jan 13 2024
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base,easy
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|