Well, you’ve may have heard about imaginary numbers. There’s one problem: They don’t exist. Not really. That’s why they are called imaginary numbers. Real numbers, by contrast, do exist. You can put your hand on 2 apples. You can’t put your hand on an imaginary number of apples (unless you’ve had some mind-altering drugs, but that’s another story altogether.)

Imaginary numbers were created as an attempt to find a solution for the square root of negative one. No matter how hard you try, you can’t find a real number where the square is -1. So mathematicians created a construct called “*i*” which is defined so that . This means that *i* can be considered **a** solution for the square root of negative one — but it isn’t the *only* solution. Per my last post, you can also consider as another solution to the square root of negative one.

When you put real and imaginary numbers together, you get complex numbers. These can be written as . Addition and subtraction are fairly straightforward — . Multiplication is a little more difficult: . Division is a little harder yet:

Once you have these down, working with complex numbers is pretty straightforward. The only weirdness is that you can’t really say if one complex number is larger than another. (For example, is larger than ?). You can tell if two complex numbers are equal: is equal to if (and only if) both and .

Complex numbers are not the only way to deal with trying to find a square root of -1. There is a mathematical construct called quaternions which have not one, but rather three constructs called *i*, *j*, *k* where none of *i*, *j*, or *k* are equal to any of the others, and . Since we want these to be candidates for the square root of negative one, . Any quaternion can be represented then by .

Quaternions are useful. For example, several graphics packages use them to be able to render 3d scenes — *bi* represents the *x* axis, *cj* represents the *y* axis, and *hk* represents the *z* axis (*a* is mostly ignored.) Using quaternions makes a number of transformations (like rotating an object) much easier to represent and calculate.

The problem is that there are some things that quaternions can’t do. Remember that I said that ? Well, it turns out that . Despite how this looks, this is not actually a contradiction, as *i* times *j* is not the same statement as *j* times *i*.

Why? Multiplication was inspired by wanting to find the total number of objects in some number of sets of some number of objects. For example, say that you have 4 boxes of 3 apples. How many apples do you have? 4 times 3 which is 12. Now, let’s say that you have 3 boxes of 4 apples. How many apples do you have now? 12 apples. Are 4 boxes of 3 equal to 3 boxes of 4? Yes, if you look at the total number of apples. No, if you look at the boxes; a pile of 3 boxes is not the same as a pile of 4 boxes. Multiplying real or complex numbers only care about the total number of apples. With quaternions, we care about the boxes as well.

(If you want to know: , , , and .)

By the way, quaternions are not the worst construct for weird properties — there are entire courses in college-level mathematics about constructs that are even weirder.