Tuesday, November 18, 2008

River-crossing classics

For this week's puzzle, we will have two simple classics. Remember: in the world of puzzles, simple is not necessarily bad, and challenging is not necessarily good.

1. A man must cross the river with a fox, a chicken, and some cabbage. There is only one boat, and only the man can row it, and he can only take one companion at a time. For obvious reasons, he cannot leave the fox alone with the chicken or leave the chicken alone with the cabbage. How can he do it?

2. Three missionaries and three cannibals must cross a river (geez, whoever wrote this one had a dark sense of humor). They have a single boat that can only carry two people, and there must be at least one person rowing it. If at any time, there are more cannibals than missionaries on either side of the river, the cannibals will eat the missionaries. How can everyone get across alive?

Update: Solution has been posted


intrinsicallyknotted said...

Ooh, I love these ones. I've seen them before though, and I know the answers, so I'll stay out of the answering.

(I may try to work out a generalization of the missionaries/cannibals one, if I get a chance.)

Secret Squïrrel said...

1. Definitely a classic and once you realise that there is only one object that the farmer can safely take on the first trip, the rest falls into place. Previously I've seen this puzzle presented mostly with one or other of two sets of objects, but you appear to have combined them! (Points for originality :-). Usually it's either fox/chicken/corn or wolf/goat/cabbage. (I don't even know if the chicken would eat the cabbage!)

As for puzzle 2, it can't be solved if your conditions are to be strictly adhered to. Since at some point there will be more missionaries than cannibals on one side of the river, it follows that there will be more c than m on the other side (it may be that there is 1c and zero m but 1 > 0). So I've added the caveat that if there are no m on one of the sides, it doesn't matter how many c there are since they will have nothing to eat.

Again, the solution follows logically - since c <= m, unless m = 0; the first trip must either include 1 of each with the m returning or 2 c (with 1 c returning). It's the same result in either case. The 2nd trip can only be 2c as otherwise you end up with belly-yum-time. Here's the rest:

mmm ccc || nobody
mmm c || cc (2c ->)
mmm cc || c (<- 1c)
mmm || ccc (2c ->)
mmm c || cc (<- 1c)
m c || mm cc (2m ->)
mm cc || m c (<- 1m1c)
cc || mmm c (2m ->)
ccc || mmm (<- 1c)
Now the c come across in 3 trips.

Finding the solution was vaguely unsatisfying because I was hoping that the missionaries would get eaten...

miller said...

Ha! I guess the chicken might not eat the cabbage. I just couldn't remember what those three objects were supposed to be.