Computers and Technology

In this puzzle you have a list of n pitchers, with known capacities, c1, c2, ... cn, of holding water in gallons. You have a faucet that can be used as often and as much as the player needs. The goal is to measure exactly g gallons of water, using nothing other than these pitchers. Suppose the current amounts of water that these pitchers hold is w1, w2, ... wn,. These numbers are assumed to be 0 initially. The puzzle is solved as soon as wi = g for any i. A player can perform the following operations: Fill pitcher i (from the faucet). The precondition of this operation is: ci > wi 0. The effect is: wi = ci. Empty pitcher i. The precondition of this operation is: ci wi > 0. The effect is: wi = 0. Pour pitcher i to pitcher j. The precondition of this operation is: (ci wi > 0) and (cj > wj 0). In words, pitcher i must have some water to pour, and pitcher j must have some unused capacity to receive it. The (partial) effect is: (wi = 0) or (wj = cj) or both. In words, the pour operation must continue until pitcher i becomes empty (and its content is added to pitcher j's content), or pitcher j becomes full (and pitcher i retains the remainder), whichever occurs first. They may occur simultaneously. A Sample Run Select the puzzle to solve: 1. Pitchers 2. Eight puzzle Your selection: 1 Enter the number of pitchers: 3 Enter the capacities of the 3 pitchers (gallons): 2, 5, 10 Enter the goal (gallons): 1 Current configuration: [0, 0, 0] Please select your next move from the following choices: 1. Fill pitcher 1 2. Fill pitcher 2 3. Fill pitcher 3 Your selection: 2 Current configuration: [0, 5, 0] Please select your next move from the following choices: 1. Fill pitcher 1 2. Fill pitcher 3 3. Empty pitcher 2 4. Pour pitcher 2 to 1 5. Pour pitcher 2 to 3 Your selection: 4 Current configuration: [2, 3, 0] Please select your next move from the following choices: 1. Fill pitcher 2 2. Fill pitcher 3 3. Empty pitcher 1 4. Empty pitcher 2 5. Pour pitcher 1 to 2 6. Pour pitcher 1 to 3 7. Pour pitcher 2 to 3 Your selection: 3 Current configuration: [0, 3, 0] Please select your next move from the following choices: 1. Fill pitcher 1 2. Fill pitcher 2 3. Fill pitcher 3 4. Empty pitcher 2 5. Pour pitcher 2 to 1 6. Pour pitcher 2 to 3 Your selection: 5 Current configuration: [2, 1, 0] Great! You have reached the goal in 4 moves. Bye.