Re: make 100 by using 1, 7, 7, 7, 7



Robert Israel schrieb:
Kira Yamato <kirakun@xxxxxxxxxxxxx> writes:

On 2007-11-13 13:22:13 -0500, Robert Israel <israel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> said:

"Benjamin A. Bartsch" <benjamin.a.bartsch@xxxxxxxxx> writes:

dangerousgam...@xxxxxxxxx schrieb:
So, using only +, -, x, /, and parentheses, and ONLY these numbers:

1, 7, 7, 7, 7

how can you make 100? Is there more than one solution?
--> (1/7+7)*(7+7)

Benjamin
Yes, and that's the only solution (up to commutativity).
I'm very curious how you concluded this. Was it by a program that tests through all possible combinations?

I tried to write a program too, but I stop when I couldn't quickly find a way to list out all possible trees with 7 leaves.

Here's my search program, written in Maple.

trees:= proc(S) option remember; local oper,SL,L,res,ret,V,W,v,w,R,r; if nops(S) = 1 then {[op(S),op(S)]}
else res:= {}; ret:= {};
for oper in [`+`,`-`,`/`,`*`] do
for SL in combinat[powerset]({$1..nops(S)}) do
if nops(SL) > 0 and nops(SL) < nops(S) then
L:= sort([seq(S[j],j=SL)]);
R:= sort([seq(S[j],j=({$1..nops(S)} minus SL))]);
V:= trees(L);
W:= trees(R);
for v in V do
for w in W do
if ((oper = `+`) or (oper = `*`)) and (v[1] > w[1]) then next end if; try
r:= oper(v[1],w[1]);
catch: next;
end try;
res:= res union {r};
ret:= ret union {[r, [v[2],oper,w[2]]]};
end do
end do
end if
end do
end do; ret
end if
end proc;

select(t -> (t[1]=100), T);

{[100, [[[1, /, 7], +, 7], *, [7, +, 7]]]}

Would the program be any simpler if you encoded RPN, that is +,-,/,E(nter)? The solution then is:

1E7/7+7E7+*

--
Thomas Nordhaus
.



Relevant Pages

  • Re: make 100 by using 1, 7, 7, 7, 7
    ... Kira Yamato writes: ... dangerousgam...@xxxxxxxxx schrieb: ... a way to list out all possible trees with 7 leaves. ... res:= res union; ...
    (sci.math)
  • Re: make 100 by using 1, 7, 7, 7, 7
    ... On Nov 13, 12:05 pm, Robert Israel ... a way to list out all possible trees with 7 leaves. ... res:= res union; ... end proc; ...
    (sci.math)