Global Math Week is almost upon us!

*Exploding Dots* is a mind-blowing experience for mathematics at all age and experience levels: K- 12, undergraduate-graduate-research mathematics.

There has never, in my experience, been such a simple mathematical idea with such profound ability to unite people of all ages and experience levels in engaging with mathematics.

Exploding Dots can provide very visual and understandable representations for numbers in unusual “bases”.

A machine, for example, represents numbers in base , but not quite in the “usual” mathematical meaning of a base representation: in the Exploding Dots scenario, the digits 0, 1, 2 are allowed.

More generally, for a machine, where , the digtis 0, 1, …, p-1 are allowed. We call this the base Exploding Dots representation of a number.

## Playful explorations

One ongoing exploration of Exploding Dots representations is finding *palindromes* for a base Exploding Dots representation.

For example, we can check that the base Exploding Dots representations of the following numbers are all palindromes: they read the same backwards as forwards.

n (base 10) | Exploding Dots digits, base 3/2 |

1 | {1} |

2 | {2} |

5 | {2, 2} |

8 | {2, 1, 2} |

17 | {2, 1, 0, 1, 2} |

35 | {2, 1, 2, 2, 1, 2} |

170 | {2, 1, 2, 0, 2, 2, 0, 2, 1, 2} |

278 | {2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2}}, |

422 | {2, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 2} |

494 | {2, 1, 2, 0, 0, 1, 0, 1, 0, 0, 2, 1, 2} |

Are there any more?

As of the date of writing no-one knows.

Searches have been done for more base Exploding Dots palindromes, but so far – up to – no more have been found.

To the contrary, there seem to be very many – possibly infinitely many – Exploding Dots palindromes.

## Some machinery to do the heavy lifting

It’s clear that we cannot search numbers by hand to check if their Exploding Dots representations are palindromes.

We need a computer implementation of an algorithm to do this.

The algorithm is already completely transparent in the way we represent numbers using Exploding Dots, which is one of the great intuitive powers of Exploding Dots.

Here’s an example for a machine:

The algorithm is very simple:

- split the number n, whose Exploding Dots representation we wish to find into as many groups of 3 as we can. This number of groups is the integer part of n/3;
- record a digit, which is the remainder when we have split n into as many groups of 3 as we can. This number is n – 3(integer part of n/3);
- Replace n by 2 for every group of 3. This number is 2(integer part of n/3);
- repeat until n < 3, and record this n as the final digit.

There’s nothing fancy about this algorithm- it’s just what we do in finding the base Exploding Dots representation of a number.

The brilliance is in the Exploding Dots conceptualization – thanks Jim Tanton!

Now we can translate this algorithm into a suitable programming language.

I chose to do it in *Mathematica®* just because I happen to like *Mathematica®.*

But you may not have access to *Mathematica®* so you may want to program this algorithm in Python, or Sage, or GeoGebra.

Anyway, here’s my *Mathematica®* code, with a few extra bells and whistles – I generalized by allowing a machine, where and put in a command to stop the program and print a warning message if someone chose with :

**ExplodingDotsRepresentation[p0_, q0_, n0_] := **

**Module[{p = p0, q = q0, n = n0, digits}, digits = {}; **

** While[n >= p && p > q, **

** digits = Prepend[digits, n – p*IntegerPart[n/p]]; **

** n = q*IntegerPart[n/p]];**

**If[p > q, digits = Prepend[digits, n], **

** Print[“Whoa,stop! You must choose p greater than q. So go back and ****make sure p is greater than q.”]]]**

This is actually pretty useful for larger numbers

**ExplodingDotsRepresentation[7, 2, 1232423534631236787454]**

{2,1,2,5,5,3,4,2,1,3,0,0,4,1,5,0,0,2,5,4,2,3,4,1,3,5,1,3,3,2,5,3,5,6,2,1,2,3,6}

and for extensive explorations, like finding (or not) palindromes to unusual bases.