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.

A214850 3x+1 groups: irregular triangle read by rows: row n gives all the numbers p <= A075684(n)+1 such that {T(2n+1,k) /pZ} is a multiplicative finite group, where T(2n+1,k) is the reduced trajectory of the Collatz problem whose elements are all odd.

Original entry on oeis.org

2, 4, 2, 4, 6, 2, 4, 6, 8, 12, 18, 2, 4, 8, 2, 4, 6, 2, 4, 6, 8, 12, 2, 4, 8, 2, 4, 6, 8, 12, 2, 4, 6, 12, 2, 4, 8, 10, 20, 22, 2, 4, 6, 8, 2, 4, 6, 12, 18, 2, 4, 8, 16, 2, 4, 6, 2, 4, 6, 8, 12, 16, 18, 24, 2, 4, 2, 4, 6, 2, 4, 6, 8, 12, 18, 2, 4, 8, 2, 4, 6
Offset: 1

Views

Author

Michel Lagneau, Mar 08 2013

Keywords

Comments

We introduce the structure of a finite group in order to give a possible way to classify the Collatz trajectories.
We see that the study of the classification of the trajectories is dependent on the values p.
The principle of the algorithm is to compute all the products T(2n+1,i)/pZ * T(2n+1,j)/pZ and also the inverse of each element such that if x is in the group, then there exist x' in the group with x*x' = 1.
Rows of triangle:
{2, 4},
{2, 4, 6},
{2, 4, 6, 8, 12, 18},
{2, 4, 8},
{2, 4, 6},
{2, 4, 6, 8, 12},
{2, 4, 8},
{2, 4, 6, 8, 12}, ...

Examples

			Row 18 gives 6 groups with p = {2, 4, 6, 8, 12, 18}. The Collatz trajectory T(37,k) = {37, 7, 11, 17, 13, 5, 1}, and if we choose, for example, p=18, we obtain G(37) = {T(37,k)/18Z} = {7, 11, 17, 13, 5, 1} which (as subset of Z/18Z) is a multiplicative group of order 6.
For example 5, or 11, generates the cyclic group:
5^1 == 5, 5^2 == 7, 5^3 == 17, 5^4 == 13, 5^5 == 11, 5^6 == 1 (mod 18).
Other subgroups are {1}, {1, 17} and {1, 7, 13}.
		

Crossrefs

Programs

  • Maple
    c:=0:
    for n from 3 by 2 to 800 do:
           x:=2:lst:={n}:lst1:={}:x := n:
              for k from 1 to 120 while (x > 1) do:
                 a := 0:
                 if type(x, 'even') then
                 x := x/2:lst:=lst union {x}:a:=a+1:
                else
                x := 3*x+1 :lst:=lst union {x}:a:=a+1:
                fi:
           od:
            n1:=nops(lst):
              for u from 1 to n1 do:
                 if irem(lst[u], 2)=1 then
                 lst1:=lst1 union {lst[u]}:
                else
               fi:
             od:
             m1:= max( op(lst1)):n1:=nops(lst1):
                for p from 2 by 2 to m1+1 do:
                lst2:={}:
                   for q from 1 to n1 do:
                   lst2:=lst2 union {irem(lst1[q], p)}:
                  od:
                  lst3:={}:n2:=nops(lst2):kkk:=0:
                    for i from 1 to n2 do:jjj:=0:
                        for j from 1 to n2 do:
                           z:=irem(lst2[i]*lst2[j], p):lst3:=lst3 union{z}:
                           if z=1 then jjj:=1:else fi
                        od:
                        if jjj=0 then kkk:=1:else fi:
                     od:
                     n3:=nops(lst3):iii:=0:
                         for b from 1 to n3 while(iii=0 and n2=n3 and kkk=0)
                     do:
                          if lst2[b]<>lst3[b] then
                          iii:=1:else
                          fi:
                        od:
                        if iii=0  and n2=n3 and kkk=0 then c:=c+1:
                        printf ( "%d %d \n",c,p):
                        else
                        fi:
                    od:
                     x:=2:
                  od: