On algorithms to calculate integer complexity
Abstract
We consider a problem first proposed by Mahler and Popken in 1953 and later developed by Coppersmith, Erdos, Guy, Isbell, Selfridge, and others. Let f(n) be the complexity of n ∈ Z+, where f(n) is defined as the least number of 1's needed to represent n in conjunction with an arbitrary number of +'s, *'s, and parentheses. Several algorithms have been developed to calculate the complexity of all integers up to n. Currently, the fastest known algorithm runs in time O(n1.230175) and was given by J. Arias de Reyna and J. van de Lune in 2014. This algorithm makes use of a recursive definition given by Guy and iterates through products, f(d) + f(nd), for d \ |\ n, and sums, f(a) + f(n - a), for a up to some function of n. The rate-limiting factor is iterating through the sums. We discuss potential improvements to this algorithm via a method that provides a strong uniform bound on the number of summands that must be calculated for almost all n. We also develop code to run J. Arias de Reyna and J. van de Lune's analysis in higher bases and thus reduce their runtime of O(n1.230175) to O(n1.222911236). All of our code can be found online at: https://github.com/kcordwel/Integer-Complexity.
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.