In this series, we’ve been looking at operators as something that modifies the state of some machine or device, usually triggered by the pushing of a button. We’ve looked quite a bit at operators that operate on numbers, for example in this post, and connected it to the mathematics of middle school, specifically the transition from arithmetic to algebra. We also looked a lot at operators that operate on state that isn’t just a single number; in fact, we worked through – in considerable detail – the design of a state machine for a simple four-function calculator. In our previous post in this series, we brought the design work of the four-function calculator to a point where we can now take a break from it. (It’s not that the design is fully done, or beyond criticism – we can actually learn a lot about black boxes by comparing a proposed model with the real thing and looking for differences in their behavior. But it isn’t something we need to do right away.)
What I would like to do next is to apply the state machine model to what are sometimes called sequences, sometimes called series, and what are known by others as recurrence relations. Most of us are familiar with the type of question: “what is the next number in the sequence 10, 13, 16, 19, …?” where you are supposed to notice that the numbers n the sequence are each three higher than the number preceding them. All this relates directly to the state machine model we’ve been using:
If the state of the machine is just a number, and the button is labeled something like “Next”, then a starting state of 10 and an operator of “+ 3” will match the behavior of the sequence 10, 13, 16, 19, and pressing Next one more time will get us a state of 22. This is shown below:
You’ll notice I’ve also added an explicit “Start” button, so we can reset the thing, and it also gives us a way to show the starting value in a static representation so we don’t have to rely on a video of the thing to see what the starting state was. What I haven’t made explicit, but assume, is that the state is shown on a screen so we can see what the state is.
I’ll leave you with some teasers, to be followed up on later. Can you see what the behavior of each of the following machines is?
To refresh on notation, in the second one of these, we use the notation “10 -” for “subtract from 10”, and in the third one of these, we use the notation “9 ÷” for “divide into 9”, as we introduced here.