Bowers' Arrays

Bowers' Arrays are very useful and interesting tools for producing absolutely immense numbers. This note will tell you about this insanely fast-growing function, so you too can experience the fun of really big numbers.

Anyway, let's start with the simplest array, {}\{ \} (the empty array). This is defined as:

{}\{ \} = 11

Not very big, is it? Don't run away yet, and instead observe the might of a one entry array!

{a}\{ a \} = aa

I'm not really making a good impression, am I? Don't worry, because they get bigger.

{a,b}\{ a,b\} = ab{ a }^{ b }

That's more like it! These three arrays ({}\{ \}, {a}\{ a\}, and {a,b}\{ a,b\}), along with their definitions, make up Rule 1 of Bowers' Arrays. Rule 1 is used to deal with arrays of length 0, 1 or 2.

Rule 2 is simply {a,b,,n,1}\{ a,b,\dots ,n,1\} = {a,b,,n}\{ a,b,\dots ,n\}. In other words, any trailing 11s in the array can and must be removed without affecting its value.

Rule 3 is {a,1,,n}\{ a,1,\dots ,n\} = aa. If the second entry in the array is a 11, then the overall value of the array is aa. This is somewhat similar to how a1{ a }^{ 1 } = aa.

Rule 4 is where the more interesting behaviour of Bowers' Arrays come in, and is much more complex that the previous three rules. {a,b,1,,1,m,,n}\{ a,b,1,\dots ,1,m,\dots ,n\} = {a,b,1,,{a,b1,1,,1,m,,n},m1,,n}\{ a,b,1,\dots ,\{ a,b-1,1,\dots ,1,m,\dots ,n\} ,m-1,\dots ,n\}.

Said in natural language, if the third entry is 11, then the final one in the unbroken chain of 1s following from the third entry (e.g. the 6th entry in {a,b,1,1,1,1,n}\{ a,b,1,1,1,1,n\}, and the 3rd entry in {a,b,1,m,1,n}\{ a,b,1,m,1,n\}) is replaced by a copy of the entire array but with the second entry decremented by 1, and the entry after the chain of 1s decremented by 1. Additionally, all entries before the one changed to a modified copy of the array are replaced with aa.

As a simple example of the fourth rule in action, {3,3,1,3,1,3}\{ 3,3,1,3,1,3\} = {3,3,{3,2,1,3,1,3},2,1,3}\{ 3,3,\{ 3,2,1,3,1,3\} ,2,1,3\}.

The fifth and final rule is that {a,b,c,,n}\{ a,b,c,\dots ,n\} = {a,{a,b1,c,,n},c1,,n}\{ a,\{ a,b-1,c,\dots ,n\} ,c-1,\dots ,n\}. In natural language, that means that if rules one through four do not apply, the the second entry is replaced by a copy of the array but with the second entry decremented by 11, and the third entry of the original array is decremented by 11.

As a quick task, try simplifying a small array like {3,3,3}\{ 3,3,3\} with a repeated application of these rules. You will soon find that it becomes unmanageably huge. And if only a three entry array with small numbers in it makes such a huge number, imagine how big a ten entry array full of tens would be!

Image credit: Jonathan Bowers

Note by A Former Brilliant Member
6 years ago

No vote yet
1 vote

  Easy Math Editor

This discussion board is a place to discuss our Daily Challenges and the math and science related to those challenges. Explanations are more than just a solution — they should explain the steps and thinking strategies that you used to obtain the solution. Comments should further the discussion of math and science.

When posting on Brilliant:

  • Use the emojis to react to an explanation, whether you're congratulating a job well done , or just really confused .
  • Ask specific questions about the challenge or the steps in somebody's explanation. Well-posed questions can add a lot to the discussion, but posting "I don't understand!" doesn't help anyone.
  • Try to contribute something new to the discussion, whether it is an extension, generalization or other idea related to the challenge.
  • Stay on topic — we're all here to learn more about math and science, not to hear about your favorite get-rich-quick scheme or current world events.

MarkdownAppears as
*italics* or _italics_ italics
**bold** or __bold__ bold

- bulleted
- list

  • bulleted
  • list

1. numbered
2. list

  1. numbered
  2. list
Note: you must add a full line of space before and after lists for them to show up correctly
paragraph 1

paragraph 2

paragraph 1

paragraph 2

[example link]( link
> This is a quote
This is a quote
    # I indented these lines
    # 4 spaces, and now they show
    # up as a code block.

    print "hello world"
# I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
MathAppears as
Remember to wrap math in \( ... \) or \[ ... \] to ensure proper formatting.
2 \times 3 2×3 2 \times 3
2^{34} 234 2^{34}
a_{i-1} ai1 a_{i-1}
\frac{2}{3} 23 \frac{2}{3}
\sqrt{2} 2 \sqrt{2}
\sum_{i=1}^3 i=13 \sum_{i=1}^3
\sin \theta sinθ \sin \theta
\boxed{123} 123 \boxed{123}


Sort by:

Top Newest

What got you interested in Bowers' Arrays? They are not a topic that people usually come across.

Calvin Lin Staff - 6 years ago

Log in to reply

I was once a fan of higher dimensional shapes, and in my googling for more information I stumbled across Bower's website. I explored that website a bit, and soon discovered the Infinity Scrapers page. From there, I was hooked.

Log in to reply

Do you know if Bower arrays are always computable and do they always (in principle) end up yielding a number? What might I use Bower arrays to do (other than construct fantastically large quantities)?

Josh Silverman Staff - 6 years ago

Log in to reply

For the first, yes as long as each entry is greater than or equal to 1. For the second, I haven't a clue. That oen's left as an exercise for the reader.

Log in to reply

I think he is referring to turing computability. This array computation seems to have a remote connection with the computability of Ackermann function.

Abhishek Sinha - 6 years ago

Log in to reply

Question - what if the second entry is an array?

Like, what about this: {3, {3, 2, 3}, 2}

Just making sure I got the idea down for this..

Yitz Deng - 6 years ago

Log in to reply

You can't simplify the whole array yet. But you can simplify the inner array to {3, {3, 1, 3}, 2} = {3, 3, 2}.

Ivan Koswara - 6 years ago

Log in to reply


Problem Loading...

Note Loading...

Set Loading...