The power of representation: Adding powers of two
Wednesday, February 13th, 2008
On the left is an addition problem. If you know the answer without thinking, you’re probably a geek.
Suppose you had to solve a large number of problems of this type; adding consecutive powers of 2 starting from 1. If you did enough of them you might guess that 1 + 2 + 4 + … + 2n – 1 is always equal to 2n – 1. In the example on the left, we’re summing from 20 to 210 and the answer is 211 – 1 = 2047.
And if you cast your mind back to high-school mathematics you might even be able to prove this using induction.
But that’s a lot of work, even supposing you see the pattern and are able to do a proof by induction.
Let’s instead think about the problem in binary (i.e., base 2). In binary, the sum looks like the image on the right.
There’s really no work to be done here. If you think in binary, you already know the answer to this “problem”. It would be a waste of time to even write the problem down. It’s like asking a regular base-10 human to add up 3 + 30 + 300 + 3000 + 30000, for example. You already know the answer. In a sense there is no problem because your representation is so nicely aligned with the task that the problem seems to vanish.
Why am I telling you all this?
Because, as I’ve emphasized in three other postings,
if you choose a good representation, what looks like a problem can simply disappear.
I claim (without proof) that lots of the issues we’re coming up against today as we move to a programmable web, integrated social networks, and as we struggle with data portability, ownership, and control will similarly vanish if we simply start representing information in a different way.
I’m trying to provide some simple examples of how this sort of magic can happen. There’s nothing deep here. In the non-computer world we wouldn’t talk about representation, we’d just say that you need to look at the problem from the right point of view. Once you do that, you see that it’s actually trivial.