A125195 Records in A127885.
0, 1, 7, 8, 16, 17, 20, 23, 31, 32, 38, 46, 47, 50, 53, 56, 59
Offset: 1
This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.
a(5)=5 because the trajectory of 5 is (5,16,8,4,2,1).
import Data.List (findIndex) import Data.Maybe (fromJust) a006577 n = fromJust $ findIndex (n `elem`) a127824_tabf -- Reinhard Zumkeller, Oct 04 2012, Aug 30 2012
A006577 := proc(n) local a,traj ; a := 0 ; traj := n ; while traj > 1 do if type(traj,'even') then traj := traj/2 ; else traj := 3*traj+1 ; end if; a := a+1 ; end do: return a; end proc: # R. J. Mathar, Jul 08 2012
f[n_] := Module[{a=n,k=0}, While[a!=1, k++; If[EvenQ[a], a=a/2, a=a*3+1]]; k]; Table[f[n],{n,4!}] (* Vladimir Joseph Stephan Orlovsky, Jan 08 2011 *) Table[Length[NestWhileList[If[EvenQ[#],#/2,3#+1]&,n,#!=1&]]-1,{n,80}] (* Harvey P. Dale, May 21 2012 *)
a(n)=if(n<0,0,s=n; c=0; while(s>1,s=if(s%2,3*s+1,s/2); c++); c)
step(n)=if(n%2,3*n+1,n/2); A006577(n)=if(n==1,0,A006577(step(n))+1); \\ Michael B. Porter, Jun 05 2010
def a(n): if n==1: return 0 x=0 while True: if n%2==0: n//=2 else: n = 3*n + 1 x+=1 if n<2: break return x print([a(n) for n in range(1, 101)]) # Indranil Ghosh, Jun 05 2017
def A006577(n): ct = 0 while n != 1: n = A006370(n); ct += 1 return ct # Ya-Ping Lu, Feb 22 2024
collatz<-function(n) ifelse(n==1,0,1+ifelse(n%%2==0,collatz(n/2),collatz(3*n+1))); sapply(1:72, collatz) # Christian N. K. Anderson, Oct 09 2024
a(9) = 8 because for 9 the traditional 3x+1 iteration follows the 19-step path: 9 -> 28 -> 14 -> 7 -> 22 -> 11 -> 34 -> 17 -> 52 -> 26 -> 13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1 while allowing x->3x+1 for even x gives the 11-step path: 9 -> 28 -> 85 -> 256 -> 128 -> 64 -> 32 -> 16 -> 8 -> 4 -> 2 -> 1
Table[Length@ NestWhileList[If[OddQ@ #, 3 # + 1, #/2] &, n, # > 1 &] - Length@ NestWhileList[Flatten[# /. {k_ /; OddQ@ k :> 3 k + 1, k_ /; EvenQ@ k :> {k/2, 3 k + 1}}] &, {n}, FreeQ[#, 1] &], {n, 126}] (* Michael De Vlieger, Aug 20 2017 *)
For n=1, the initial set from which we start is {1}, and it already contains 1, so a(1) = 1 as the size of that set is 1. For n=2, the initial set is {2}, which will become set {1, 7} (because 2/2 = 1 and 3*2+1 = 7), and that set already contains 1, thus a(2) = 2. For n=3, the initial set is {3}, the next set is 3*3+1 = {10}, from which we get {5, 31} -> {16, 94} -> {8, 47, 49, 283} -> {4, 25, 142, 148, 850} -> {2, 13, 71, 74, 76, 425, 427, 445, 2551} and from that one we get these 12 numbers: {1, 7, 37, 38, 40, 214, 223, 229, 1276, 1282, 1336, 7654}, and because 1 is among these, a(3) = 12. For n = 12, the iteration proceeds as follows: {12} -> {6, 37} -> {3, 19, 112} -> {10, 56, 58, 337} -> {5, 28, 29, 31, 169, 175, 1012} -> {14, 16, 85, 88, 94, 506, 508, 526, 3037} -> {7, 8, 43, 44, 47, 49, 253, 254, 256, 263, 265, 283, 1519, 1525, 1579, 9112} -> {4, 22, 25, 127, 128, 130, 133, 142, 148, 760, 763, 769, 790, 796, 850, 4556, 4558, 4576, 4738, 27337} -> {2, 11, 13, 64, 65, 67, 71, 74, 76, 380, 382, 385, 391, 395, 398, 400, 425, 427, 445, 2278, 2279, 2281, 2288, 2290, 2308, 2369, 2371, 2389, 2551, 13669, 13675, 13729, 14215, 82012} -> {1, 7, 32, 34, 37, 38, 40, 190, 191, 193, 196, 199, 200, 202, 214, 223, 229, 1139, 1141, 1144, 1145, 1147, 1154, 1156, 1174, 1186, 1195, 1201, 1276, 1282, 1336, 6835, 6838, 6844, 6865, 6871, 6925, 7108, 7114, 7168, 7654, 41006, 41008, 41026, 41188, 42646, 246037}. As this last set contains 1 and has 47 members, a(12) = 47. Note how here in the 7th iteration the term 22 is a child of both 7 (as 3*7+1) and 44 (as 44/2), but as these are sets, not multisets, 22 occurs only once in {4, 22, 25, ...}.
Table[Length@ Last@ NestWhileList[Union@ Flatten[# /. {k_ /; OddQ@ k :> 3 k + 1, k_ /; EvenQ@ k :> {k/2, 3 k + 1}}] &, {n}, FreeQ[#, 1] &], {n, 64}] (* Michael De Vlieger, Aug 20 2017 *)
allocatemem(2^31); A290100(n) = { my(S); S=[n]; while( S[1]!=1, S = vecsort( concat(apply(x->3*x+1, S), apply(x->x\2, select(x->x%2==0, S) )), , 8); ); length(S); } \\ After Max Alekseyev's code for A127885 for(n=1,126,write("b290100.txt", n, " ", A290100(n)));
from sympy import flatten def a(n): if n==1: return 1 L=[n] while not 1 in L: L=sorted(list(set(flatten([[3*k + 1, k/2] if k%2==0 else 3*k + 1 for k in L])))) return len(L) for i in range(1, 101): print(a(i)) # Indranil Ghosh, Aug 31 2017
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.
# 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 d := A125731((n-1)/3,lim-1); d2 := A125731(2*n,d); if (d2 < d) then d := d2; end if; else d := A125731(2*n,lim-1); end if; return 1+d; end proc;
/* See links. */
{ A261870(n) = my(S, k); S=[n]; k=0; while( S[1]!=1, k++; S=vecsort( concat(apply(x->3*x-1, S), apply(x->x\2, select(x->x%2==0, S) )), , 8); ); k } /* Max Alekseyev, Sep 03 2015 */
Position[#, k_ /; k > 0][[All, 1]] &@ Table[Length@ NestWhileList[If[OddQ@ #, 3 # + 1, #/2] &, n, # > 1 &] - Length@ NestWhileList[Flatten[# /. {k_ /; OddQ@ k :> 3 k + 1, k_ /; EvenQ@ k :> {k/2, 3 k + 1}}] &, {n}, FreeQ[#, 1] &], {n, 126}] (* Michael De Vlieger, Aug 20 2017 *)
Comments