From: Robert Dober Date: 2007-04-06T22:32:00+09:00 Subject: Re: [QUIZ] Getting to 100 (#119) On 4/6/07, Ruby Quiz wrote: > The three rules of Ruby Quiz: > > 1. Please do not post any solutions or spoiler discussion for this quiz until > 48 hours have passed from the time on this message. > > 2. Support Ruby Quiz by submitting ideas as often as you can: > > http://www.rubyquiz.com/ > > 3. Enjoy! > > Suggestion: A [QUIZ] in the subject of emails about the problem helps everyone > on Ruby Talk follow the discussion. Please reply to the original quiz message, > if you can. > > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > by Gavin Kistner > > The NPR show "Car Talk" has regular quizzes that they call "Puzzlers"[1]. The > one listed on their web site for March 12th[2] is titled "Getting to 100". In > the quiz, you are supposed to write down the digits 1-9 in order, followed by " > = 100", and then insert between them two minus symbols and one plus symbol (in > any order) to make the formula correct. You aren't allowed to re-arrange digits, > or do some toothpick math like combine two minus signs to make a plus. You must > use every digit, and all three operators. For example, here's one incorrect > solution: > > 123 + 45 - 67 - 89 = 100 (This is an incorrect formula; it totals 12) > > The quiz, then, is to solve this problem without thinking, instead letting the > computer think for you. Your program should output every possible equation that > can be formed, and the actual result of that equation. The equation that results > in 100 should have stars around it. At the end, you should print out the number > of formulae that were possible. Here's an excerpt of some example output: > > ... > 12 - 34 - 567 + 89 = -500 > 12 - 34 + 567 - 89 = 456 > 12 + 34 - 567 - 89 = -610 > ************************ > 123 - 45 - 67 + 89 = 100 > ************************ > 123456 - 7 - 8 + 9 = 123450 > 123456 - 7 + 8 - 9 = 123448 > 123456 + 7 - 8 - 9 = 123446 > ... > 168 possible equations tested > > You should not print the same equation more than once. ("1 - 2 - 3 + 456789" is > the same as "1 - 2 - 3 + 456789", even if the computer thinks that the two minus > symbols come in a different order.) > > Extra Credit: Write your program to accept an arbitrary number and ordering of > digits, an arbitrary set of operators (but allowing the same operator more than > once) sorry for being picky but I guess it might be useful - an arbitrary set of operators + an array of operators that can come in any order hopefully somebody will find the correct formal expression to describe the beast ... , and an arbitrary target number that the equation is supposed to evaluate > to. > > [1] 2007 Puzzler Index: http://www.cartalk.com/content/puzzler/2007.html > [2] http://www.cartalk.com/content/puzzler/transcripts/200711/index.html > > For the rest sounds like fun. Cheers Robert -- You see things; and you say Why? But I dream things that never were; and I say Why not? -- George Bernard Shaw