cp's OEIS Frontend

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.

A375006 Numbers whose Collatz trajectory is a Sidon sequence.

Original entry on oeis.org

1, 2, 4, 8, 16, 21, 32, 42, 64, 85, 128, 151, 170, 227, 256, 302, 341, 454, 512, 682, 1024, 1365, 2048, 2730, 4096, 5461, 8192, 10922, 14563, 16384, 21845, 29126, 32768, 43690, 65536, 87381, 131072, 174762, 262144, 349525, 524288, 699050, 932067, 1048576
Offset: 1

Views

Author

Markus Sigg, Jul 27 2024

Keywords

Comments

If a number is a term, then all its trajectory elements are terms. This can be used to accelerate the programs.
Each power of 2 is a term.
Each term that is a multiple of 4 is a power of 2: The trajectory of 2^r(2s+1) with r > 1 is 2^r(2s+1), ..., 2s+1, 6s+4, ..., 1, which includes 4(2s+1), and 4(2s+1) + 1 = 2s+1 + 6s+4, so 2^r(2s+1) cannot be a term unless s = 0.
Each even term is the double of an odd term or a power of 2: If k is an even term, then k/2 is a term. If k/2 is odd, then k is the double of an odd term. If k/2 is even, then k is a multiple of 4 and hence a power of 2.
Hugo Pfoertner conjectured that the double of each odd term is a term, too. If this is true, then A375006 is the union of A374527, twice A374527, and A000079.
Level-wise traversal of the corresponding subtree of the Collatz tree allows one to quickly generate many (unsorted) terms of the sequence. Up to at least level 1000 there is no counterexample to the conjectured occurrence of twice of all terms of A374527 in the present sequence. The results also suggest that A374527 is not finite.

Examples

			3 is not a term because its trajectory is {3,10,5,16,8,4,2,1} and 3+10 = 5+8.
		

Crossrefs

Programs

  • PARI
    is_A375006(k) = { my(T=List([k]), S=Set([2*k])); while(k>1, k=if(k%2==0,k/2,3*k+1); listput(T,k); for(i=1,#T, my(s=T[i]+k); if(setsearch(S,s),return(0),S=setunion(S,Set([s])));); ); 1 };
    
  • Python
    from itertools import count, islice
    def A375006_gen(startvalue=1): # generator of terms >= startvalue
        for n in count(max(startvalue,1)):
            t, a, c = [n], n, set()
            while a > 1:
                a = 3*a+1 if a&1 else a>>1
                for p in t:
                    if (b:=p+a) in c:
                        break
                    c.add(b)
                else:
                    t.append(a)
                    continue
                break
            else:
                yield n
    A375006_list = list(islice(A375006_gen(startvalue=1),20)) # Chai Wah Wu, Jul 27 2024