(34S) Collatz Conjecture
05-31-2014, 08:11 PM (This post was last modified: 06-15-2017 01:20 PM by Gene.)
Post: #1
 Dave Britten Senior Member Posts: 1,459 Joined: Dec 2013
(34S) Collatz Conjecture
Briefly, the Collatz Conjecture states that you can start with any positive integer, and by repeating these two transformations, eventually arrive at 1:

1. If the number is even, divide it by 2.
2. If the number is odd, multiply it by 3 and add 1.

Here's a simple program to evaluate such sequences, and report the number of transformations that were needed to reach 1, as well as the max value that was obtained along the way. Optionally, you can set flag 1 before execution to view the current value being updated in real-time (this slows the program down considerably, though).

Input:
X: Starting Value

Output:
Y: Maximum Value
X: Number of Transformations

Example:
27 XEQ'CTZ'

In less than one second, you should see 111, the total number of transformations. Press x><y to see the max value, 9,232.

Code:
LBL 'CTZ' LocR 002 STO .01 0 STO .00 RDown LBL 00 x=1? GTO 09 FS? 01 PSE 00 INC .00 EVEN? GTO 02 3 * 1 + x>? .01 STO .01 GTO 00 LBL 02 2 / GTO 00 LBL 09 RCL .01 RCL .00 RTN END
05-31-2014, 08:44 PM
Post: #2
 Didier Lachieze Senior Member Posts: 1,173 Joined: Dec 2013
RE: (WP-34S) Collatz Conjecture
The Collatz Conjecture is also called the Syracuse problem.
Here is my version for the WP 34S in 19 steps:
Code:
001 LBL A 002 FILL 003 STO- Y 004 x#1? 005 SKIP 002 006 DROP 007 RTN 008 INC Y 009 EVEN? 010 SKIP 006  011 3 012 * 013 INC X 014 x>?Z 015 STO Z 016 BACK 008 017 2 018 / 019 BACK 015
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)