Show The Multiplication Operation Visually: Alternate Version of Challenge #48


#1

Multiplication by 3 with output pattern reflecting the operation

In the book’s version of Puzzle 48, only blue balls are used. In this version, combine what you know from earlier puzzles about repeating visual patterns with the challenge of multiplication to produce an output of colored marbles that visually represents the process used to compute the product.

For example, if Register A is set to 4, we are multiplying 4 x 3 in this operation. Register B will store the answer, which is 12, just like in Paul’s version of #48 in the book. But here, the output of marbles should reflect the operation of 4 x 3 visually. I’ll give examples below.

Specifically, in my implementation the blue marbles represents the fixed multiplier of 3 and the red marbles represent the value set in register A. If A = 4, the final pattern of marbles will be:

multiplication_result_3x4_12_20180717
which I write as: BBBrBBBrBBBrBBBr

This shows 4 red marbles, visually representing the value (multiplicand?) set in register A, and it shows 4 groups of 3 blue marbles, visually showing the operation 4 x 3. Register B also shows the product, which in the case of 4 x 3, is 12.

If we set register A to 1, the output would be:

BBBr

Here register B would contain 3, which is the correct answer for 1 x 3. The pattern shows 1 red ball and 3 blue balls, visually representing the multiplication operation of 1 x 3 performed by the Turing Tumble.

One final example: 2 x 3 = 6:

BBBrBBBr

2 red marbles and 6 blue marbles grouped into two groups of 3 each, visually representing multiplication operation again. (The red marbles are, of course, necessary to define the groups of blue marbles.) I feel this puzzle shows how multiplication is a series of addition operations.

Suggested initial board layout to get started:

multiplication_starting-board-layout_20180717
(click image for jstumble JavaScript emulator)

You can start with any board layout you choose and you can use any parts available. I chose to start with the red lever, and my example visual pattern reflects that. For discussion it might be better if we all adopt this convention and start with the red lever so that the the visual patterns in the output remain comparable and consistent.

This puzzle assumes you have already completed Paul’s version of challenge 48. The initial suggested board layout for this challenge is almost the same as the version in the book. I provide this suggested layout to help you get started, but feel free to start with any initial layout you wish.

I have a solution which uses 27 total parts . I tried to minimize “expensive” parts such as gear bits and favour “inexpensive” parts such as ramps or crossovers. However, alternative views of the economy of a solution are welcomed too. One restriction in this challenge is that we cannot economize in a way that reduces the connection of the visual output to the multiplication operation. The visual output is what this challenge is all about (of course, the multiplication operation has to be correct and the product stored in register B has to be correct.) We probably cannot use fewer marbles (unless you come up with a visual representation I haven’t thought of, but which conveys the operation just as clearly).


#2

Interesting puzzle.

There’s a straightforward solution with the book’s initial layout - just put a 3-cycle at the blue output that cycles B+1, B+2, null (red) and have the red ball do A-1.

For this one, this works:


https://www.lodev.org/jstumble/?board=ll0elerrrf0lleerr0f0lleerr0f0llfr0fe1iee1

For exception handling, there should be an interceptor to catch B’s overflow, but so long as A isn’t set above 5 as per the original problem’s specification, that’s moot.


#3

Yes. Great job. That’s exactly the solution I came up with too. See mine here:
https://www.lodev.org/jstumble/?board=ll0elerrrf0lleerr1f0lleerr0f0llfr1fe1iee1

Glad you found it interesting.


#4

there is a feature that hides solutions that might be useful.
if you click on the settings in the reply text box it shows a hide details option.

example

it works well for solutions