Re: Arithmetic Puzzle (so simple it's hard)
- To: mathgroup at smc.vnet.net
- Subject: [mg71392] Re: Arithmetic Puzzle (so simple it's hard)
- From: "Scout" <Scout at nodomain.com>
- Date: Thu, 16 Nov 2006 00:53:59 -0500 (EST)
- References: <ejc4pv$6nf$1@smc.vnet.net>
Some years ago I wrote a routine that looked for all the solutions to this
type of game with the substitution of all the digits and the operators
("*","+","-","/") in the Integers.
"Doubly True" is the name of this game If I remember well...
A brute approach in this case helps:
In[1]:= <<DiscreteMath`Combinatorica`
In[2]:=
s=ToUpperCase["but*ask==feast"]
s2=StringCases[s,LetterCharacter];
unicChs=Union[Flatten[Characters[ToUpperCase[s2]]]];
l=Length[unicChs];
digs=CharacterRange["0","9"];
p=Take[digs,l];
ks=p;
Do[
Do[
test=StringReplace[s,Thread[unicChs->p]];
If[ToExpression[test],Print[test]];
p=NextPermutation[p],
{l!}];
ks=NextKSubset[digs,ks];
p=ks,
{Binomial[10,l]}];
Well formed solutions:
160*283==45280
630*124==78120
670*142==95140
540*128==69120
165*439==72435
Bye,
~Scout~
"Bruce Colletti" <vze269bv at verizon.net>
news:ejc4pv$6nf$1 at smc.vnet.net...
> 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}.
>
> Thankx.
>
> Bruce
>