Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: make 100 by using 1, 7, 7, 7, 7
Replies: 41   Last Post: Nov 15, 2007 6:13 PM

 Messages: [ Previous | Next ]
 Michael Press Posts: 2,137 Registered: 12/26/06
Re: make 100 by using 1, 7, 7, 7, 7
Posted: Nov 15, 2007 6:13 PM

In article <fher2p\$j0d\$03\$1@news.t-online.com>,
Thomas Nordhaus <thnord2002@yahoo.de> wrote:

> Robert Israel schrieb:
> > Kira Yamato <kirakun@earthlink.net> writes:
> >

> >> On 2007-11-13 13:22:13 -0500, Robert Israel
> >> <israel@math.MyUniversitysInitials.ca> said:
> >>

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

> >>>> dangerousgam...@gmail.com 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+*

Try it! I have not coded them up, but it looks to
me that generating the infix strings and generating
the postfix strings is equal work.

A neat exercise is to write a code that produces
the equivalent infix expression from the postfix
or prefix expression.

--
Michael Press

Date Subject Author
11/12/07 dangerousgame95@gmail.com
11/12/07 Thomas Nordhaus
11/12/07 amzoti
11/12/07 quasi
11/12/07 dangerousgame95@gmail.com
11/13/07 magidin@math.berkeley.edu
11/12/07 Thomas Nordhaus
11/12/07 quasi
11/12/07 Joshua Cranmer
11/12/07 Raymond Manzoni
11/13/07 William Elliot
11/13/07 amzoti
11/12/07 David R Tribble
11/12/07 Nat Silver
11/12/07 Raymond Manzoni
11/12/07 Raymond Manzoni
11/13/07 benjamin.a.bartsch@gmail.com
11/13/07 amzoti
11/13/07 David W. Cantrell
11/13/07 magidin@math.berkeley.edu
11/13/07 David W. Cantrell
11/13/07 magidin@math.berkeley.edu
11/13/07 briggs@encompasserve.org
11/13/07 Robert Israel
11/13/07 Dave Seaman
11/13/07 benjamin.a.bartsch@gmail.com
11/13/07 amzoti
11/13/07 David W. Cantrell
11/13/07 Jan Kristian Haugland
11/13/07 Robert Israel
11/13/07 Kira Yamato
11/13/07 Kira Yamato
11/13/07 Robert Israel
11/13/07 amzoti
11/14/07 Thomas Nordhaus
11/15/07 Michael Press
11/14/07 Michael Press
11/15/07 Kira Yamato
11/15/07 Michael Press
11/15/07 Rick Decker
11/13/07 Raymond Manzoni