|
|
A252867
|
|
a(n) = n if n <= 2, otherwise the smallest number not occurring earlier having in its binary representation at least one bit in common with a(n-2), but none with a(n-1).
|
|
25
|
|
|
0, 1, 2, 5, 10, 4, 3, 12, 17, 6, 9, 18, 8, 7, 24, 33, 14, 32, 11, 36, 19, 40, 16, 13, 48, 15, 80, 34, 20, 35, 28, 65, 22, 41, 66, 21, 42, 68, 25, 38, 72, 23, 64, 26, 69, 50, 73, 52, 67, 44, 81, 46, 129, 30, 97, 130, 29, 98, 132, 27, 100, 131, 56, 70, 49, 74, 37, 82
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,3
|
|
COMMENTS
|
Conjectured to be a permutation of the nonnegative integers. [Comment modified by N. J. A. Sloane, Jan 10 2015]
This is a purely set-based version of A098550, using the binary representation of numbers.
An equivalent definition in terms of sets: S(0) = {}, S(1) = {0}, S(2} = {1}; thereafter S(n) is the smallest set (different from the S{i} with i < n) of positive integers such that S(n) meets S(n-2) but is disjoint from S(n-1). - N. J. A. Sloane, Mar 27 2022; corrected Aug 01 2022.
|
|
LINKS
|
|
|
EXAMPLE
|
The sequence of sets is {}, {0}, {1}, {0,2}, {1,3}, {2}, {0,1}, {2,3}. After the initial 3 terms, S(n) is the minimum set (as ordered by A048793) that has a nonempty intersection with S(n-2) but empty intersection with S(n-1). [Typos corrected by N. J. A. Sloane, Aug 01 2022 at the suggestion of Michel Dekking.]
Comment from N. J. A. Sloane, Dec 31 2014: The binary expansions of the first few terms are:
0 = 000000
1 = 000001
2 = 000010
5 = 000101
10 = 001010
4 = 000100
3 = 000011
12 = 001100
17 = 010001
6 = 000110
9 = 001001
18 = 010010
8 = 001000
7 = 000111
24 = 011000
33 = 100001
14 = 001110
32 = 100000
11 = 001011
36 = 100100
19 = 010011
40 = 101000
...
|
|
MAPLE
|
read("transforms") : # define ANDnos
local a, known, i ;
option remember;
if n <=2 then
n;
else
for a from 3 do
known := false ;
for i from 1 to n-1 do
if procname(i) = a then
known := true;
break;
end if;
end do:
if not known then
if ANDnos(a, procname(n-1)) = 0 and ANDnos(a, procname(n-2)) > 0 then
return a;
end if;
end if;
end do:
end if
end proc:
|
|
MATHEMATICA
|
a[n_] := a[n] = If[n<3, n, For[k=3, True, k++, If[FreeQ[Array[a, n-1], k], If[BitAnd[k, a[n-2]] >= 1 && BitAnd[k, a[n-1]] == 0, Return[k]]]]];
|
|
PROG
|
(PARI) invecn(v, k, x)=for(i=1, k, if(v[i]==x, return(i))); 0
alist(n)=local(v=vector(n, i, i-1), x); for(k=4, n, x=3; while(invecn(v, k-1, x)||!bitand(v[k-2], x)||bitand(v[k-1], x), x++); v[k]=x); v
(Haskell)
import Data.Bits ((.&.)); import Data.List (delete)
a252867 n = a252867_list !! n
a252867_list = 0 : 1 : 2 : f 1 2 [3..] where
f :: Int -> Int -> [Int] -> [Int]
f u v ws = g ws where
g (x:xs) = if x .&. u > 0 && x .&. v == 0
then x : f v x (delete x ws) else g xs
(Python)
A252867_list, l1, l2, s, b = [0, 1, 2], 2, 1, 3, set()
for _ in range(10**2):
i = s
while True:
if not (i in b or i & l1) and i & l2:
l2, l1 = l1, i
b.add(i)
while s in b:
b.remove(s)
s += 1
break
|
|
CROSSREFS
|
|
|
KEYWORD
|
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|