A359208
Maximum value reached when starting from n during iteration of the map x->A359194(x) (binary complement of 3n), or -1 if infinite.
Original entry on oeis.org
0, 1, 2, 300, 300, 5, 300, 10, 10, 300, 10, 300, 328536, 300, 21, 300, 300, 328536, 300, 300, 300, 21, 72, 328536, 300, 328536, 661, 328536, 123130640068522377168864228132316865867184046004226894, 40, 300, 328536, 328536
Offset: 0
a(3) = 300 because the largest term in the iterated sequence: (3, 6, 13, 24, 55, 90, 241, 300, 123, 142, 85, 0) is 300.
-
f[n_] := BitXor[3 n, 2^IntegerPart[Log2[3 n] + 1] - 1]; Table[Max@ NestWhileList[f, n, # != 0 &], {n, 0, 32}] (* Michael De Vlieger, Dec 21 2022 *)
-
f(n) = if(n, bitneg(n, exponent(n)+1), 1); \\ A035327
a(n) = my(x=n, m=n); while (m, m=f(3*m); if (m>x, x=m)); x; \\ Michel Marcus, Dec 21 2022
-
def f(n): return 1 if n == 0 else (m:=3*n)^((1 << m.bit_length())-1)
def a(n):
i, fi, m = 0, n, n
while fi != 0: i, fi, m = i+1, f(fi), max(m, fi)
return m
print([a(n) for n in range(33)]) # Michael S. Branicky, Dec 20 2022
A359218
Let S(n) be the sequence obtained through the mapping of x->A359194(x) starting with n and stopping when 0 is reached, -1 if 0 is never reached. a(n) = m if appears in S(k), k < n, otherwise -1.
Original entry on oeis.org
0, 0, 1, 0, 3, 0, 6, 1, 7, 4, 10, 9, 10, 13, 0, 15, 16, 12, 18, 6, 3, 21, 22, 12, 24, 25, 3, 27, 21, 7, 30, 31, 31, 28, 34, 22, 19, 37, 13, 39, 40, 4, 1, 43, 123, 58, 46, 4, 187, 49, 27, 102, 52, 96, 42, 55, 87, 57, 58, 21, 30, 61, 48, 63, 64, 60, 66, 54, 51, 69
Offset: 0
a(1) = 0 since S(1) = {1, 0}, but m = 0 appeared in S(0).
a(2) = 1 since S(2) = {2, 1, ...}, but m = 1 appeared in S(1).
a(3) = 0 since S(3) = {3, 6, 13, 24, 55, 90, 241, 300, 123, 142, 85, 0}, but m = 0 appeared in S(0).
a(4) = 3 since S(4) = {4, 3, ...} but 3 appears in S(3), etc.
a(5) = 0 since S(5) = {5, 0}, but 0 appears in S(0).
a(6) = 6 since 6 appears in F(3).
a(7) = 1 since S(7) = {7, 10, 1, ...} but 1 appears in S(1).
a(8) = 7 since S(8) = {8, 7, ...} but 7 appears in S(7)
a(9) = 4 since S(9) = {9, 4, ...} but 4 appears in S(4).
a(10) = 10 since 10 appears in S(7).
a(11) = 9 since S(11) = {11, 30, 37, 16, 15, 18, 9, ...} but 9 appears in S(9).
a(12) = 10 since S(12) = {12, 27, ..., 39, 10, ...} but 10 appears in S(7), etc.
-
c[] = -1; c[0] = 0; f[n] := BitXor[3 n, 2^IntegerPart[Log2[3 n] + 1] - 1]; Table[(Map[If[c[#1] == -1, Set[c[#1], #2]] & @@ # &, Partition[#, 2, 1]]; Last@ #) &@ NestWhileList[f, n, c[#] == -1 &], {n, 0, 120}]
A359219
Starting numbers that require more iterations of the map x->A359194(x) (binary complement of 3n) to reach 0 than any smaller number.
Original entry on oeis.org
0, 1, 2, 3, 4, 9, 11, 12, 17, 23, 28, 33, 74, 86, 180, 227, 350, 821, 3822, 4187, 5561, 6380, 6398, 22174, 22246, 26494, 34859, 49827, 70772, 103721, 104282, 204953, 213884, 225095, 407354, 425720
Offset: 1
3 is a term because it requires 11 iterations to reach 0, which is more than any starting number less than 3.
0: (0) -- 0 terms
1: (1, 0) -- 1 term
2: (2, 1, 0) -- 2 terms
3: (3, 6, 13, 24, 55, 90, 241, 300, 123, 142, 85, 0) -- 11 terms.
-
from itertools import count, islice
def f(n): return 1 if n == 0 else (m:=3*n)^((1 << m.bit_length())-1)
def iters(n):
i, fi = 0, n
while fi != 0: i, fi = i+1, f(fi)
return i
def agen(): # generator of terms
record = -1
for m in count(0):
v = iters(m)
if v > record: yield m; record = v
print(list(islice(agen(), 18))) # Michael S. Branicky, Dec 21 2022
a(27)-a(36) from
Tom Duff (SeqFan mailing list, Dec 19 2022)
A359220
Number of steps to reach 0 from A359219(n) where A359219 are the starting numbers that require more iterations in the map x->A359194(x) than any smaller number.
Original entry on oeis.org
0, 1, 2, 11, 12, 13, 19, 80, 81, 83, 7572, 7573, 7574, 7578, 7580, 664475, 664882, 3180929, 3180930, 3180931, 3181981, 3181988, 3182002, 3182226, 120796790, 556068798, 556068799, 556068871, 556068872, 572086553, 572086610, 1246707529, 1246707552, 1246707555, 1246707602
Offset: 1
a(4) is the step count from the starting number A359219(4) = 3: (3, 6, 13, 24, 55, 90, 241, 300, 123, 142, 85, 0) -- 11 steps, hence a(4) = 11.
-
from itertools import count, islice
def f(n): return 1 if n == 0 else (m:=3*n)^((1 << m.bit_length())-1)
def iters(n):
i, fi = 0, n
while fi != 0: i, fi = i+1, f(fi)
return i
def agen(): # generator of terms
record = -1
for m in count(0):
v = iters(m)
if v > record: yield v; record = v
print(list(islice(agen(), 18))) # Michael S. Branicky, Dec 21 2022
a(27) and beyond from Tom Duff (SeqFan mailing list, Dec 19 2022)
A359221
Starting numbers which reach a new record high value when iterating the map x->A359194(x) (binary complement of 3n).
Original entry on oeis.org
0, 1, 2, 3, 12, 28, 227, 821, 22246, 26494, 204953, 425720
Offset: 1
Let S(x) = iteration sequence of A359194 starting with x; then
S(0) = (0), maximum = 0;
S(1) = (1, 0), maximum = 1;
S(2) = (2, 1, 0), maximum = 2;
S(3) = (3, 6, 13, 24, 55, 90, 241, 300, 123, 142, 85, 0), maximum = 300;
Since S(3) contains a higher maximum than any lower positive starting integer, 3 is a term of this sequence.
Cf.
A035327,
A359194,
A359207,
A359208,
A359209,
A359215,
A359218,
A359219,
A359220,
A359222,
A359255.
-
from itertools import count, islice
def f(n): return 1 if n == 0 else (m:=3*n)^((1 << m.bit_length())-1)
def itersmax(n):
i, fi, m = 0, n, n
while fi != 0: i, fi, m = i+1, f(fi), max(m, fi)
return i, m
def agen(): # generator of terms
record = -1
for m in count(0):
v, mx = itersmax(m)
if mx > record:
yield m # use mx to obtain values
record = mx
print(list(islice(agen(), 8))) # Michael S. Branicky, Dec 22 2022
A359222
Number of steps to reach 0 from A359221(n) (Starting numbers that reach a new record high value during iteration by the map x->A359194(x)).
Original entry on oeis.org
0, 1, 2, 11, 80, 7572, 664475, 3180929, 120796790, 556068798, 1246707529, 87037147316
Offset: 1
a(4) is the step count from the starting number A359221(4) = 3: (3, 6, 13, 24, 55, 90, 241, 300, 123, 142, 85, 0) -- 11 steps, hence a(4) = 11.
-
from itertools import count, islice
def f(n): return 1 if n == 0 else (m:=3*n)^((1 << m.bit_length())-1)
def itersmax(n):
i, fi, m = 0, n, n
while fi != 0: i, fi, m = i+1, f(fi), max(m, fi)
return i, m
def agen(): # generator of terms
record = -1
for m in count(0):
v, mx = itersmax(m)
if mx > record:
yield v # use m to obtain starting numbers
record = mx
print(list(islice(agen(), 8))) # Michael S. Branicky, Dec 29 2022
Showing 1-6 of 6 results.
Comments