There's
another solution that works even when n
different people have different
ideas of what 1/nth of the
whole is. One person is
chosen randomly to start, and takes out for himself what he
considers to be 1/nth of the whole. If someone thinks that what he took out was
more than 1/nth, that person
removes some from what the
first person thought was 1/nth (he thought it was
bigger than 1/nth,
right?), and
claims the rest for himself. We
repeat this
challenge process until everyone
agrees that this is at most 1/nth, and we
recursively
divide the rest of the whole among n-1 people.
To adapt this to cutting a cake, instead of actually cutting out 1/nth of the cake, we just indicate where the cut would go, and others make the indicated cut smaller as appropriate. This avoids passing around slivers of cake (thanks mblase). Really, this algorithm is best suited for dividing many discrete items among a few people.