# Zero Factorial

## The question ...

What "should" zero factorial be?

There are several explanations.

## Direct - number of arrangements

Working directly from the definition of factorial as the number of arrangements of objects, we declare that the number of ways of arranging zero objects is one, but some people are unconvinced by this. "There are no objects", they say, "so you can't arrange them at all. The answer should be zero."

Well, here's an elaboration of the "arrangement" explanation.

• Suppose you have 5 boxes and five objects. One person goes into the room and puts one thing in each box. Then someone else goes in, and they have to write down what the arrangement is. How many different answers can you get? 5! = 120.

• Suppose you have 4 boxes and four objects. One person goes into the room and puts one thing in each box. Then someone else goes in, and they have to write down what the arrangement is. How many different answers can you get? 4! = 24.

• ...

• Suppose you have one box and one object. One person goes into the room and puts one thing in each box. Then someone else goes in, and they have to write down what the arrangement is. How many different answers can you get? 1! = 1.

Now for zero boxes? There is only one answer that can be given.

## Identity approach

If we define n! to be n*(n-1)*(n-2)*...*3*2*1 then we can deduce that (n!)/(n-1)! = n. Substituting n=1 we get that 1!/0! = 1, and hence 0!=1.

## Another identity

Since the number of ways of choosing r objects from n is n!/(r!(n-r)!), the number of ways of choosing n objects from n objects is n!/(n!*0!), so 0! must be 1 to make that work.

## The number pattern explanation

Look at the following sequence:

40320, 5040, 720, 120, 24, ...

Ask "How does this continue? What's the rule?"

Some work will show that going leftwards involves multiplying by successive integers, so going rightwards should be dividing by successive integers:


40320  (divide by 8 gives ...)
5040  (divide by 7 gives ... )
720  (divide by 6 gives ...)
120  (divide by 5 gives ...)
24  (divide by 4 gives ...)
??

This shows clearly the pattern we want.

## The "Algorithm" approach.

Here's an algorithm to compute n factorial (written in Python (yes, this is executable code))

F = 1
while n>0:
F = F*n
n = n-1
print F

Running through this a few times shows how it works, why it works, and that it gives the right answer for n>0. What answer does it give for n=0?

### Credits

Some of these have been suggested by contributors on the TES teacher bulletin board:

Yup. 0! = 1.