I use Hilbert's Hotel to give the students a basic handle on sizes of infinity. Here's my telling of it:
There is this hotel with infinite rooms numbered 1, 2, 3, 4, etc. It's a weird hotel that attracts odd people.
There's a convention for these odd people held at this hotel every year. An infinite amount of people come to the hotel who conveniently have silly names. Their names are 1, 2, 3, 4, etc. Each person likes their personal space A LOT--enough that they will do anything to keep it. This means they like to each have their own room and will pack up and move rooms in order to stay that way.
So, when the convention happens, it is easy to give everyone a room, we just tell them to go to the room whose number matches their name. Thus, every room has a person and every person has a room. (See Part 1 for why this is important)
Nothing too exciting here, we've just shown that (infinity) people = (infinity) rooms.
In the middle of the night, another guy shows up: his name is 0. The sign outside was flickering between "vacancy" and "no vacancy," so he thought he'd stop in and see if we could accommodate him. Can you think of a way to give him a room at our hotel (which doesn't include building a new room or telling him to "go to the end" and wait until he dies walking that far)?
Well, since our people have their odd quirk, they don't mind moving rooms, so the easiest way to make sure 0 gets a room is to move EVERYONE down one room and put 0 in room #1. So, how can we check that everyone has a room and every room has a person? We need a nice way to match each person with their room and each room with their person.
This one shouldn't be too hard, but here it is. If there's a lost person who forgot his room number, we tell him to add 1 to his name and find that room for his place. If there is a room that is on fire and we have to alert the person who is assigned to that room, we subtract 1 from the room number to see which person's belongings are in peril. Since we can do this for any person or room at random, we can do it for all of them.
Thus, every room has a person and every person has a room. This result is also not too surprising because really we've just shown that (infinity + 1) people = (infinity) rooms.
Here's where it gets a little odd. Shortly after 0 is settled in his new room and everyone else just moves down a spot, a new situation arrives. Infinitely more people show up to the hotel who also have odd names: -1, -2, -3, -4, etc. Do we have room for everyone?
Well, we can't quite have everyone "move down a few rooms" because when do we tell them they can stop? After some thinking, most clases will have at least one student who comes up with "double the room numbers." This is an option that works. We tell everyone who currently has a room (0, 1, 2, 3, etc.) they have to move again, but this time they have to double their room numbers to find their new room. Not too hard for some (0 who was in room 1 is now in room 2), but 999 who was in room 1000 now has to walk all the way down to 2000, and don't get me started with those long-namers further down. At least it's possible. This frees up all the odd numbered rooms for all of the new people.
So, it seems like it can be done, but is there an easy way to tell which person goes with each room and vice-versa? Perhaps. This is where we get into piecewise functions (or for you computer types "if" statements). IF your name is a non-negative number (0, 1, 2, 3, etc.) your room number is 2*(NAME + 1). IF your name is a negative number (-1, -2, -3, etc.) your room number is 2*abs(NAME) - 1. This matches people to rooms.
We can match rooms to people by doing: IF the room number is odd, then it contains a negative named person. So, we can do -(1/2)*(ROOM + 1) to find out who lives there. IF the room number is even, we can find the name of the person by doing (1/2)*(ROOM) - 1.
Thus, every room has a person and every person has a room. This makes sense on one level and is weird on another. On one level, we just showed that (infinity + infinity) people = (infinity) rooms. That kinda makes sense. On another level, we just showed that the number of numbers in the sequence 0, 1, 2, 3, etc is the SAME as the number of numbers in ..., -3, -2, -1, 0, 1, 2, 3, ...
Maybe you're getting it, maybe you're not. But in part 3 we'll see why not all infinities are the same. In particular, when a new group of infinity people show up (with names that represent all the decimals from 0 to 1) we CAN'T fit them in our hotel.