|
|
A231550
|
|
Permutation of nonnegative integers: for each bit[i] in the binary representation, except the most and the least significant bits, set bit[i] = bit[i] XOR bit[i-1], where bit[i-1] is the less significant bit, XOR is the binary logical exclusive or operator.
|
|
4
|
|
|
0, 1, 2, 3, 4, 7, 6, 5, 8, 11, 14, 13, 12, 15, 10, 9, 16, 19, 22, 21, 28, 31, 26, 25, 24, 27, 30, 29, 20, 23, 18, 17, 32, 35, 38, 37, 44, 47, 42, 41, 56, 59, 62, 61, 52, 55, 50, 49, 48, 51, 54, 53, 60, 63, 58, 57, 40, 43, 46, 45, 36, 39, 34, 33, 64, 67, 70, 69, 76
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,3
|
|
COMMENTS
|
|
|
LINKS
|
|
|
FORMULA
|
|
|
MATHEMATICA
|
Join[{0, 1}, Table[d = IntegerDigits[n, 2]; FromDigits[Join[{d[[1]]}, BitXor[Most@Rest@d, Rest@Rest@d], {d[[-1]]}], 2], {n, 2, 68}]] (* Ivan Neretin, Dec 28 2016 *)
|
|
PROG
|
(Python)
for n in range(99):
bits = [0]*64
orig = [0]*64
l = int.bit_length(int(n))
t = n
for i in range(l):
bits[i] = orig[i] = t&1
t>>=1
for i in range(1, l-1): bits[i] ^= orig[i-1] # A231550
#for i in range(1, l-1): bits[i] ^= bits[i-1] # A231551
#for i in range(l-1): bits[i] ^= orig[i+1] # A003188
#for i in range(1, l): bits[l-1-i] ^= bits[l-i] # A006068
t = 0
for i in range(l): t += bits[i]<<i
print(str(t), end=', ')
(R)
a <- 1
maxlevel <- 8 # by choice
#
for(m in 0:maxlevel) for(k in 0:(2^m-1)){
a[2^(m+1) +2*k] <- 2*a[2^m+k]
a[2^(m+2)-1-2*k] <- 2*a[2^m+k] + 1
}
(a <- c(0, a))
(PARI) a(n) = bitxor(n, if(n>3, bitand(n<<1, bitneg(0, logint(n, 2))))); \\ Kevin Ryde, Jul 17 2021
|
|
CROSSREFS
|
|
|
KEYWORD
|
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|