Exploring properties in reduced Collatz dynamics

Citation Author(s):
Wei Ren
Submitted by:
Wei Ren
Last updated:
Thu, 11/08/2018 - 10:34
Data Format:
0 ratings - Please login to submit your rating.


We design a computer program that can output reduced dynamics for odd integers with 4k+3, e.g, [3-99999999]. Outputting (reduced) dynamics for much larger integers are also possible. The source code in C is txpo9.c.  There are 5 options in arguments for more flexible output.  Those data can reveal the properties of reduced dynamics. The most important are ratio and period. 


We discover the ratio  - the count of x/2 over the count of (3*x+1)/2 - is bounded by a constant value, ln2/ln1.5. We prove mathematically that the ratio of reduced dynamics is larger than lambda = ln2/ln1.5 ≈ 0.58496250 formally in another paper. Those data outputted by txpo9.c can be used to verify this bound.  The data shows that our analysis on the bound of ratio is right. Indeed, we can give the equation on the count of x/2 and the count of (3*x+1)/2 for any reduced dynamics. That is, CntO(c) = ceil( CntI(c)*lambda), lambda=ln1.5/ln2=0.58469250, c is any reduced dynamics in terms of I and O with length larger than 1. Here, CntO() is a function returns the count of O in c, and CntI() is a function returns the count of I in c.

For example, O is a reduced dynamics for even, it is trivial and listed aside. IO is reduced dyancmics for odd with 4k+1, we can check the equation as follows: CntO(IO)=1, CntI(IO)=1, CntO(c) = 1, ceil(CntI(c)*lambda)) = ceil(1*lambda)=ceil(0.58496250)=1.

The bound can help us generate all valid reduced dynamics by algorithm, instead of  selecting a positive number to compute its reduced dynamics.

Besides, we also discover that the period of reduced dynamics exist. That is, if the reduced dynamics of x is a sequence consisting of I and O with length L, then the reduced dynamics of x+2^L equals the reduced dynamics of x.  We also formally prove it mathematically in another paper.  This period can also observed and verified in the data file outputted by the program txpo9.c.

Note that, for the better vision in computer program output, we use “-” to represent I (i.e., (3*x+1)/2) and “0” to represent O (i.e., x/2) . 


Step 1: txpo9.c. It is source code in C that can be compiled into a executable program by any C compiler. It is ANSI C code, thus it can be complied for either Windows or Linux platform.


Step 2: Compile txpo9.c to generate txpo9.exe.


txpo9.exe is an executable program, and can be executed in any DOS command shell in Windows (if compiled for Windows platform) and computing results (as generated files) will be obtained. 


Step 3: Run txpo9.exe, which has 5 options (as the first argument).


1) Output reduced dynamics of a specific integer, which can be set in the source code before compiling. E.g., we set the integer as 2^{10000}-1, which has a form like 1...1 where a bit length of 1000 and all bits are 1. The MAXLEN of bit length is 80040 due to inner memory constraint. Note that, inner memory constraint can be broken by out file manipulation, which is provided in txpo15.c.  

E.g.,  txpo9.exe 1 > txpo9-c1                    //{1}^10000   c:choice p:pow()

2) Output reduced dynamics of a specific decimal integer, which is inputted as a argument.

E.g.,  txpo9.exe 2 703 > txpo9-c2-703            //703

 txpo9.exe 2 8088063 > txpo9-c2-8088063    //8088063

3) Output reduced dynamics of a specific decimal integers in a rang, which are inputted as two arguments.       

E.g.,  txpo9.exe 3 3 1000000 > txpo9-c3-3-1000000  //[3,1000000]

4) Output reduced dynamics of large decimal integers in a range, which are inputted as two arguments for exponents.

E.g., txpo9.exe 4 6 8 > txpo9-c4-p106-p108      //[10^6+3,10^8]

txpo9.exe 4 8 9 > txpo9-c4-p108-p109     //[10^8+3,10^9]

5) Output reduced dynamics of extremely large decimal integer that about 10^{18}. 18 can be modified to others in source codes. If it is larger, then the waiting time will be more.

E.g., txpo9.exe 5 > txpo9-c5                      //[10^18+3,16*10^18]


Note that,  the source code can be changed to output original dynamics easily, by replace main loop to - while(strlen(current_x)!=1).