reset

Collatzeral Damage

2441, 6271, 2334, 5485, 6084, 2161, 9289, 2662, 1922, 4464, 2042, 3259, 3169, 6354, 1926, 7118, 6736, 2117, 494, 4358, 999, 510, 5270, 3548, 2628, 1937, 5964, 4481, 748, 5342, 1024

Solution

author: Alec Wright

The title hints at the Collatz conjecture, which asserts that every positive integer will eventually reach 1 when the Collatz procedure is applied repeatedly:

Applying this procedure to each item in the list, we find that they indeed do reach one, and we can calculate the number of iterations required. The number of iterations are all <128, and interpreting as ascii reveals a message. As an example, the following code will yield the message:

import Data.Char (chr)

coll :: Int -> Int
coll 1 = 0
coll n
  | n `mod` 2 == 0 = 1 + coll (n `quot` 2)
  | otherwise      = 1 + coll (3*n + 1)

map (chr . coll) [2441, 6271, 2334, 5485, 6084, 2161, 9289, 2662, 1922, 4464, 2042, 3259, 3169, 6354, 1926, 7118, 6736, 2117, 494, 4358, 999, 510, 5270, 3548, 2628, 1937, 5964, 4481, 748, 5342, 1024]

The message says Go to [52.205621, 0.106852]..., when we reach this location we find some bins. On one of the bins is a number, which takes 101 Collatz iterations to reach 1. This is the answer, 101.