Subscribe via feed.

## A strange factorial

Posted by Chris on November 20, 2011 – 6:15 pm

Define the operator * such that, a*b = ab + a + b for all integers a and b.
Evaluate 1*(2*(3*(4*…(99*100)…)))

NB ab means a times b in the usual sense. The title is a clue.
Here’s another: you need to “invert” the order of the expression.

This post is under “MathsChallenge” and has 7 respond so far.

### 7 Responds so far- Add one»

1. 1. Wizard of Oz Said：

I can’t see a single operator here. All I can see is a function like fn(a,b) = (a+1)(b+1) – 1.
Putting this into the expression to be evaluated gives us
((((((…(98 x (99 x (100×101 – 1) – 1) – 1)…)))))
A better number cruncher than me might be able to put a value on this.
Factorials don’t seem to come into this (as far as I can see) so I don’t know if I’m getting warm or not.

2. 2. slavy Said：

Hi Wiz! I hope Chris doesn´t mind if I expand his hints! What he meant by “inverting” the order of expression was that you should show that the expression is associative, so that: (a*b)*c=a*(b*c), meaning that if we denote by a(100) the given expression and straightforwardly generalize it for a(n), we indeed have a(n+1)=(n+1)*a(n). Hence, we are looking for 100! with respect to the new operation *

Now, you can use induction for computing the answer or, if you still don’t see the pattern after several steps (I didn’t see it myself), then use your formula – it turns to be very helpful Actually, I do recommend using your formula rather than computing a(n) for small n – the induction seems easier…

3. 3. Chris Said：

Slavy’s assertion that “*” is an associative operator i.e. a*(b*c)=(a*b)*c is easily provable and is a crucial step (at least to keep the solution “simple”). Also Slavy’s recognition that induction is the tool to use, is also right. I gave the hint, “factorial”, to help you guess the expression to look for.

Operator’s are frequently representable by functions; though that is stretching the strict definition of function. A typical one is that the normal multiplication operator “x” is such that: a x b = (a+a+a+…+a), where there are b a’s.

The operator idea is a wonderful/elegant mathematical trick. The first time I was introduced to operators (as such) was the differential operator e.g. “d/dx” or “D”. The next time was the step-up/down (or ladder) operator, and that was to solve the quantum mechanical oscillator problem. See: http://en.wikipedia.org/wiki/Quantum_harmonic_oscillator#Ladder_operator_method

A wonderful example is the time independent Schrödinger equation: HΨ = EΨ, where H is the Hamiltionian (an operator), E is the energy level and Ψ is the wave function.

4. 4. Chris Said：

First note that * is both commutative and associative.
Commutativity: a*b = ab + a + b = b*a
Associativity: a*(b*c) = a*(bc + b + c)
= a(bc + b + c) + a + bc + b + c
= abc + ab + ac + bc + a + b + c and
(a*b)*c = (ab + a + b)c + ab + a + b + c
= abc + ab + ac + bc + a + b + c.
=> a*(b*c) = (a*b)*c = a*b*c

So we need only to calculate ((…(1*2)*3)*4)…*100).
We will prove by induction that ((…(1*2)*3)*4)…*n) = (n + 1)! – 1:
Base case (n = 2): (1*2) = 2 + 1 + 2 = 5 = 3! – 1
Inductive step: Suppose that
(((…(1*2)*3)*4)…*n) = (n + 1)! – 1:
Then, ((((…(1*2)*3)*4)…*n)*(n + 1)) = ((n + 1)! – 1)*(n + 1)
= (n + 1)!(n + 1) – (n + 1) + (n + 1)! – 1 + (n + 1)
= (n + 2)! – 1, as required.
Hence, ((…(1*2)*3)*4)…*n) = (n + 1)! – 1 for all n.

For n = 100, this gives 101! – 1.

NB I’ve only edited the solution provided by the source site.

5. 5. Wizard of Oz Said：

Nice one, Chris!

6. 6. cazayoux Said：

I’ve also enjoyed playing with this one, even though I didn’t post anything.

I’m not as smart as some of the others here, so I didn’t “see it” right away.

Thanks for the fun!

7. 7. Chris Said：

Thanks guys. I wasn’t sure about posting it, but my fascination with operators won the day

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP5\ext\php_mssql.dll' - The specified module could not be found. in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP5\ext\php_pdo_mssql.dll' - The specified module could not be found. in Unknown on line 0