Integer complexity: algorithms and computational results
Abstract
Define \|n\| to be the complexity of n, the smallest number of ones needed to write n using an arbitrary combination of addition and multiplication. Define n to be stable if for all k 0, we have \|3k n\|=\|n\|+3k. In [7], this author and Zelinsky showed that for any n, there exists some K=K(n) such that 3K n is stable; however, the proof there provided no upper bound on K(n) or any way of computing it. In this paper, we describe an algorithm for computing K(n), and thereby also show that the set of stable numbers is a computable set. The algorithm is based on considering the defect of a number, defined by δ(n):=\|n\|-33 n, building on the methods presented in [3]. As a side benefit, this algorithm also happens to allow fast evaluation of the complexities of powers of 2; we use it to verify that \|2k 3\|=2k+3 for k48 and arbitrary (excluding the case k==0), providing more evidence for the conjecture that \|2k 3\|=2k+3 whenever k and are not both zero. An implementation of these algorithms in Haskell is available.
Turn this paper into a lesson
ArcXiv compiles a structured reading guide from this paper's metadata: plain-English importance, contributions, prerequisite concepts, which sections to read first, flashcards, and a quiz. Grounded in the abstract, never invented.