Zero Factorial

   
Recent changes
Table of contents
Links to this page
FRONT PAGE / INDEX

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:

Conclusion

Yup. 0! = 1.

Contents

 

Links on this page

 
Site hosted by Colin and Rachel Wright:
  • Maths, Design, Juggling, Computing,
  • Embroidery, Proof-reading,
  • and other clever stuff.

Suggest a change ( <-- What does this mean?) / Send me email
Front Page / All pages by date / Site overview / Top of page

Universally Browser Friendly     Quotation from
Tim Berners-Lee
    Valid HTML 3.2!