Re: Arithmetic Puzzle (so simple it's hard)
- To: mathgroup at smc.vnet.net
- Subject: [mg71321] Re: Arithmetic Puzzle (so simple it's hard)
- From: Scott Hemphill <hemphill at hemphills.net>
- Date: Wed, 15 Nov 2006 06:43:11 -0500 (EST)
- References: <ejc4pv$6nf$1@smc.vnet.net>
- Reply-to: hemphill at alumni.caltech.edu
Bruce Colletti <vze269bv at verizon.net> writes:
> How would this problem be solved in Mathematica?
>
> BUT * ASK = FEAST, where each letter is a 1-digit number, no two letters may stand for the same number, and the letters are in {0,1,2,4,5,6,7,9}.
Represent the possible solutions by a list x, where
x[[1]] is the value for "A"
x[[2]] is the value for "B"
x[[3]] is the value for "E"
x[[4]] is the value for "F"
x[[5]] is the value for "K"
x[[6]] is the value for "S"
x[[7]] is the value for "T"
x[[8]] is the value for "U"
A function which tests whether the list x satisfies the condition
BUT * ASK = FEAST looks like:
In[1]:= test[x_] := {100, 10, 1} . {x[[2]], x[[8]], x[[7]]}*
{100, 10, 1} . {x[[1]], x[[6]], x[[5]]} == {10000, 1000, 100, 10, 1} .
{x[[4]], x[[3]], x[[1]], x[[6]], x[[7]]}
This function returns True if the condition is satisfied, otherwise False.
To solve the problem just select the permutations of {0,1,2,4,5,6,7,9} which
satisfy the test:
In[2]:= Select[Permutations[{0,1,2,4,5,6,7,9}], test]
Out[2]= {{1, 6, 5, 9, 2, 4, 0, 7}, {4, 0, 7, 2, 1, 9, 6, 5}}
You might want to exclude the second solution because it sets "B" to 0.
In[3]:= Select[%, #[[2]]!=0&]
Out[3]= {{1, 6, 5, 9, 2, 4, 0, 7}}
This list corresponds to 670 * 142 = 95140.
Scott
--
Scott Hemphill hemphill at alumni.caltech.edu
"This isn't flying. This is falling, with style." -- Buzz Lightyear