## Smooth Operators

*July 13, 2011 at 9:24 am* *
7 comments *

I recently learned about a cool problem that involves the four binary operations.

“My life is all arithmetic,” the young businesswoman explained. “I try to add to my income, subtract from my weight, divide my time, and avoid multiplying.”

A fifth-grader teacher, who is spending a week at NCTM Headquarters for the Illuminations Summer Institute, shared the problem with me. He uses it to practice basic operations and to develop an understanding of place value with his students.

Choose any positive integer as the starting value, and choose a different positive integer as the ending value. Then, perform any of the following moves on the starting number:

- Add 1.
- Subtract 1.
- Multiply by 10.
- Divide by 10.

Continue to perform moves until you’ve reached the ending number.

For example, you can get from 8 to 71 with the following sequence of moves:

- Subtract 1: 8 – 1 =
**7** - Multiply by 10: 7 × 10 =
**70** - Add 1: 70 + 1 =
**71**

For any given starting and ending number, what is the fewest number of moves required?

In general, can you find an algorithm to predict the minimum number of moves for any given starting and ending numbers?

The teacher who shared the problem with me said that students have fun with 777 as the starting number and 888 as the ending number. It is a fine problem for kids to explore, but it proved to be a red herring for me — it led me to make false assumptions for determining a general solution.

Enjoy.

Entry filed under: Uncategorized. Tags: operations, postaweek2011.

1.JimsMaher | July 14, 2011 at 2:26 amFor all positive integer values:

To add one, we just add.

But in order to add ten or one hundred, we have to find a way to add more than one.

When we multiply or divide the value before adding or subtracting and then performing the opposite multiply or divide function, the end result is a simple technique.

Let’s break it down into a set of sequences, these will serve as our book of phrases in a foreign language to communicate what we are trying to say in our common arithmetic:

Using the four basic operator symbols to represent the corresponding changes …

(÷, +, x) = add ten

(x, +, ÷) = add one tenth

(÷, –, x) = subtract ten

(x, –, ÷) = subtract one tenth

Expanding the method we find:

(÷, (÷, +, x), x) = add one hundred

(x, (x, +, ÷), ÷) = add one hundredth

(÷, (÷, –, x), x) = subtract one hundred

(x, (x, –, ÷), ÷) = subtract one hundredth

… so on and so forth.

Is it better to add the small amounts first or the large amounts?

Well, it’s really even simpler than that.

Since we are multiplying/dividing more for the numbers that are “further” from one (one tenth is closer to one than one hundredth is, much like ten is closer to one than one hundred is), we still have to move incrementally. We can do both along the way, and by doing that we can optimize the efficiency of the method.

Now let’s see if we can’t use this new vocabulary to solve the problem at hand.

Change 777 into 888.

First, break it down … we want to add 111.

Just add 111? Maybe later. This is teaching us about place values.

OK, Now let’s find the steps and then we’ll simplify.

+111 = (+ 1), (+10), (+100)

So, our sentence would have the following words:

(+), (÷, +, x), (÷, (÷, +, x), x)

Now we simplify.

Since, we don’t need to change direction of our multiplying and dividing more that once (proof?), we can consolidate those symbols and just have to remember the relative “distance” from the value we’re aiming for (111 in this case), so as to add or subtract the correct amount. Multiplying then immediately dividing doesn’t do anything. So …

(+, ÷, +, x, ÷, ÷, +, x, x) = (+, ÷, +, ÷, +, x, x) = +111

And that’s all you need to do with any number, figure out the difference and translate to the appropriate operator language.

2.JimsMaher | July 14, 2011 at 3:25 amExample 2:

Find the most efficient method (least number of steps).

500 to 325

500 minus 325 is -175

(-5),(-70),(-100) = -175

+ is add one.

– is subtract one.

x is multiply by ten.

÷ is divide by ten.

(–, –, –, –, –), (÷, (–, –, –, –, –, –, –), x), (÷, (÷, –, x), x) = -175

But before we simplify, there’s another way to subtract 175 that may have less steps …

(-200),(+20), (+5) = -175

(÷, (÷, –, –, x), x), (÷, (+, +), x), (+, +, +, +, +) = -175

Now let’s simplify both (by eliminating all step sequences that multiply then immediately divide and vice-versa).

(–, –, –, –, –, ÷, –, –, –, –, –, –, –, ÷, –, x, x) … 17 steps, after simplifying.

(÷, ÷, –, –, x, +, +, x, +, +, +, +, +) … 13 steps, after reevaluating the approach and then simplifying.

Started at 19 steps and through simplification and not settling for the most “direct” approach, managed to find a more efficient solution.

3.venneblock | July 14, 2011 at 10:48 pmJims, you proceeded exactly as I did! It took me an extra day to realize that my solution was only good if the digits in the difference were less than 5. Eventually, I came to the same conclusion you did. Now, how do you express the solution succinctly? I can tell people how to do it, but I haven’t figured out how to boil it down to one compact statement.

4.JimsMaher | July 15, 2011 at 9:16 amHeck if I know. I can follow the logic and follow the methodologies, but I’ve never been taught (self or otherwise) how to express the process itself in simplified terms.

I know that I could write a short program to run it. I suppose from that, pseudo-code would be how I’d boil it down. And then translating the pseudo-code into English sentences. From that I’d have to learn the syntax to express what’s going on in explicitly mathematical terms.

Call me lazy, but personally I’m satisfied once I see that the process can be programmed. Learning the syntax would be useful though.

Let’s see …

A=starting value

B=end value

C=B-A

for x element X and natural numbers, while 10^x is less than C.

X={x sub1, x sub2, etc.}

such that m sub i element M is equal to the remainder of 10^(x sub i)-1*(C mod 10^x sub i)

And that’s just to get to:

777=A

888=B

111=C

1=m sub 1

10=m sub 2

100=m sub 3

Then we need to match the “add/subtract, mutlitply/divide add/subtract divide/multiply, multiply/divide mutlitply/divide add/subtract add/subtract divide/multiply divide/multiply, etc.” to the m sub i values in a similar fashion, that’s the bulk of the translation.

Then, a simple applied-“if, then” statement to remove any multiply and divide steps immediately preceding or following their opposite.

In English:

Find the amount you must add or subtract in order to reach the intended number from the base. Break that number into it’s place values. Divide or multiply in one direction, adding or subtracting at each step the appropriate amount for that place value (zeroes in place value correspond to the number of divisions or multiplications). Then multiply or divide back to the intended value.

Works for whole numbers, further explanation required for decimals and should be more explicit about whether to divide or multiply … but you get the idea.

5.JimsMaher | July 15, 2011 at 9:43 amOh, I forgot the part about values greater than five …

I suppose if that’s the case:

For any place value with an amount greater than five (starting with the highest place value and working your way down), just increase the next highest place value by one and switch it from add to subtract or vice-versa. Find the difference of the new place value from the previous (i.e. 2200-2175=0025) and replace the corresponding values at all place values less than the primary adjusted value.

Thus, +123456789 becomes +123460000 -53211.

+90 becomes +100 -10.

-56 becomes -60 +4.

6.JimsMaher | July 15, 2011 at 9:51 amWhoops, +123456789 becomes +123460000 -3211.

7.Weekly Picks « Mathblogging.org — the Blog | July 20, 2011 at 5:49 am[…] Nice math puzzles: A variation of a classic on Cut the knot, even more classics via Mr Honner, and something for sleepless nights from Math Jokes 4 Mathy Folks. […]