|
|
A125731
|
|
a(n) = minimal number of steps to get from 1 to n, where a step is x -> 3x+1 if x is odd, or x -> either x/2 or 3x+1 if x is even. Set a(n) = -1 if n cannot be reached from 1.
|
|
3
|
|
|
0, 2, -1, 1, 6, -1, 3, 8, -1, 5, 5, -1, 2, 15, -1, 7, 7, -1, 12, 4, -1, 4, 9, -1, 9, 9, -1, 14, 14, -1, 6, 19, -1, 6, 11, -1, 11, 11, -1, 3, 29, -1, 16, 16, -1, 8, 8, -1, 8, 21, -1, 8, 13, -1, 26, 13, -1, 13, 13, -1, 5, 31, -1, 18, 18, -1, 5, 23, -1, 10
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,2
|
|
COMMENTS
|
In contrast to the "3x+1" problem, here you are free to choose either step if x is even.
Clearly a(3k) = -1 for all k; we conjecture that a(n) >= 0 otherwise.
See A127885 for the number of steps in the reverse direction, from n to 1.
|
|
LINKS
|
|
|
EXAMPLE
|
The initial values use these paths:
1 -> 4 -> 2 -> 7 -> 22 -> 11.
1 -> 4 -> 13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8.
1 -> 4 -> 13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 49 -> 148 -> 74 -> 37 -> 12 -> 56 -> 28 -> 14.
|
|
MAPLE
|
# Code from David Applegate: Be careful - the function takes an iteration limit and returns the limit if it wasn't able to determine the answer (that is, if A125731(n, lim) == lim, all you know is that the value is >= lim). To use it, do manual iteration on the limit.
A125731 := proc(n, lim) local d, d2; options remember;
if (n = 1) then return 0; end if;
if (n mod 3 = 0) then return -1; end if;
if (lim <= 0) then return 0; end if;
if (n > (3 ** (lim+1) - 1)/2) then return lim; end if;
if (n mod 9 = 4 or n mod 9 = 7) then
if (d2 < d) then d := d2; end if;
else
end if;
return 1+d;
end proc;
|
|
CROSSREFS
|
|
|
KEYWORD
|
sign
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|