Last week I presented a logic puzzle involving crossing a desert that separates two towns. You can find the puzzle details here. Thanks to Peter Larsson (Pesomanen), fastvince, and cwestervelt for posting your solutions, and to Will Alber for correcting an embarrassing typo I had originally.
In last week’s puzzle I mentioned that it takes six days to cross the desert, but a single person can carry only four days worth of food supplies. You are allowed to hire porters. The goal is to cross the desert while paying for the minimum number of porter days.
First, after looking at the suggested solutions and the comments, a few clarifications are in place…
If you hire porters for a portion of the trip, you are supposed to pay them also to get back home. I thought this part was obvious, but in retrospect I should have been explicit about it.
Having mentioned that the goal is to pay for the minimum number of porter days in order to minimize costs, I hope it was clear that the cost of food per day is much lower than the actual porter fee per day, such that it can be ignored.
Lastly, this puzzle is pretty old—older than phones and simple ways of communication. So the assumption is that there is no simple way to communicate with porters from the destination town, coordinating a meeting along the way. But not having mentioned this fact, I find cwestervelt’s solution, which relies on such logic, pretty clever, demonstrating thinking outside the box.
Let’s start with the expected solution (call it Solution 1) according to my father:
You start your journey with two porters; each of you carries food for four days. After one day porter 1 gives you and porter 2 food for one day each, and goes back home with the remaining food. After another day porter 2 and you have food for three days each. Porter 2 gives you food four one day and goes back home. You now have food for four days and need four days to reach your destination. In total, you paid for six porter days (not three). You arrived to the destination in six days, though recall that minimal timing was not a goal.
As noted earlier, last week I neglected to mention that this puzzle is ancient, and that there are no simple ways to communicate with porters from the destination town to coordinate meeting along the way. Without the communications difficulty, cwestervelt’s solution (call it Solution 2) would have been valid:
You start with food for four days and take one porter (porter 1) with you with food for three days. You coordinate with another porter (porter 2) from the destination town to leave after four days with food for three days such that you will meet after five days. After the first day porter 1 gives you food for one day and goes back home. You now have food for four days. You meet porter 2 after five days, get food for one day from him, and you both go to the destination town. In total, you paid for four porter days. You arrived to the destination in six days.
My solution, though not the expected one according to my father, involves paying for zero porter days, and arriving to the destination in 12 days. You start with food for four days. After one day you leave food for two days at that place (call the place point 1) and go back to the town of origin. You take food for four days and start again. After one day you take food for one day from point 1, leaving you with food for four days, and food for one day remains in point 1. You proceed another day and leave food for two days at that place (call the place point 2), leaving you with food for one day. You go back to point 1, grab the food that you left there, and go back to the town of origin. You take food for four days, and start again. After two days you pick up the food from point 2, and now you have food for four days with four days left to reach the destination. In total, you paid for zero porter days, and reached the destination in 12 days. Since the goal was to pay for the minimum number of porter days and not necessarily to reach the destination as fast as possible, I think that this solution should be considered valid.