Back in July of 2011, Scam School presented a classic lightning addition feat involving the Fibonacci numbers.
I recently took a closer look at the Fibonacci addition feat, and ran across some interesting findings.
First, we'll start a quick review. Here's the original video:
Why does this work? If you replace the first starting number with a, and the second starting number with b, here's how the math works out:
1. a
2. b
3. a + b
4. a + 2b
5. 2a + 3b
6. 3a + 5b
7. 5a + 8b
8. 8a + 13b
9. 13a + 21b
10. 21a + 34b
--------------
55a + 88b
Notice the 7th number from the top is 5a + 8b. If we multiply this by 11, as explained in the video, we get 55a + 88b, which is the total we need!Also, as mentioned previously, you can learn and practice multiplying by 11 in your head over at The Math World's Math Tricks: Multiply by 11 page. That's it for the review.
Practicing with Wolfram|Alpha
I got the idea to use Wolfram|Alpha to practice this routine, and was hoping they had some ready-made command where I could type in something like FibonacciSeq[{6, 2, 10}], and it would generate a generalized Fibonacci sequence starting with the numbers 6 and 2, and run for 10 terms. Unfortunately, there is no such command.There is a Fibonacci command, entered as Fibonacci[n], which returns the nth Fibonacci number from the standard series {0, 1, 1, 2, 3, 5, 8, ...}. Counting 0 as the 0th Fibonacci number, Fibonacci[4] would return 3, since 3 is the 4th number in that set. Wolfram|Alpha also accepts a shortened form of this command, using a capital F with a subscripted number, such as F_4 (effectively F4).
Looking at the sequence for variable b in the above addition, we see that we could use this quite easily, since the series goes {0b, 1b, 1b, 2b, 3b, 5b, 8b, ...}. What about the variable a, though? Somehow, we have to work it to get the series {1a, 0a, 1a, 1a, 2a, 3a, 5a, ...} at the same time.
Fortunately, it turns our there are negative orders of Fibonacci numbers. They don't often get discussed, but are important for our purposes. It turns out that F-1 is 1, which gives us the start of the sequence we need for the variable a!
The sequence we need, then, should start with F-1×a + F0×b, which is 1a + 0b = 1a = a. The next step would be F0×a + F1×b, which works out to 0a + 1b = 1b = b. This will continue up to F8×a + F9×b, which is 21a + 34b, our 10th term.
If we add Wolfram|Alpha's table command to display the entire sequence, a variable x for the length of the sequence we desire (1 through 10 for this trick), and two starting variables set to random numbers from 1 through 20, we find the way to generate a random generalized Fibonacci sequence is this: a=RandomInteger[{1,20}], b=RandomInteger[{1,20}], Table[F_(x-2) a+F_(x-1) b, {x, 1, 10}].
I just tried this out, and got the following sequence: {7, 11, 18, 29, 47, 76, 123, 199, 322, 521}. Using the principle behind the trick, I worked out that this sequence should total 1,353. As an added bonus, you can verify your mental math simply by clicking on the generated sequence! Clicking on that particular sequence, you'll see the sum in the Total pod (among numerous other ways of looking at that set).
The Successive ratios pod is also interesting, as you can see the ratios get closer and closer to approximating φ (Phi).
Other Patterns
What happens if we make the sequence longer or shorter? Let's try 8 terms on the left, and 12 terms on the right, including their totals: 1. a 1. a
2. b 2. b
3. a + b 3. a + b
4. a + 2b 4. a + 2b
5. 2a + 3b 5. 2a + 3b
6. 3a + 5b 6. 3a + 5b
7. 5a + 8b 7. 5a + 8b
8. 8a + 13b 8. 8a + 13b
-------------- 9. 13a + 21b
21a + 33b 10. 21a + 34b
11. 34a + 55b
12. 55a + 89b
--------------
144a +232b
Take a look at the 12th term on the right, 55a + 89b, and compare it to the earlier total, 55a + 88b. Those two are very close, differing only by the amount b.Similarly, if we look at the total of 8 numbers on the left, 21a + 33b, we notice that it's very close to the 10th term in the sequence, 21a + 34b. Once again, it differs only from the term by the amount b. Not surprisingly, if we continued the algebraic list to the 14th term, you'd see that it was 144a + 233b. Do you see the pattern?
This turns out to be a consistent pattern, and there's a very simple way to take advantage of it. Start as you would before, but instead of telling them to stop at the 10th number, tell them to keep on going to, say 15 terms. Let's say they generate the sequence {1, 15, 16, 31, 47, 78, 125, 203, 328, 531, 859, 1390, 2249, 3639, 5888}, but written vertically. Tell them to draw a line between any two numbers on the list (the line must be drawn somewhere above the last two numbers on the list), and then to add up all the numbers above the line on the calculator. You use only your head, and you still beat them!
Keeping with the previous example, let's say they draw the line in the sequence below 1390, like this:
1
15
16
31
47
78
125
203
328
531
859
1390
----
2249
3639
5888
All you have to do is look at the 2nd number after the total line, 3,639 in this case, and subtract the 2nd number on the list, 15 in this example. 3,639-15=3,624, so you give 3,624 as your instant answer. Sure enough, Wolfram|Alpha verifies as correct!There's another way to do this with a list of any length, but the calculation is more difficult. If we call the last two numbers on a list r and s respectively, then the number following s will be r + s, and two numbers after s will be s + r + s = r + 2s. Subtracting b means the total will be r + 2s - b.
Applying this pattern to our 1390 example above, you'd double 1,390 to get 2,780, add 859 to get 3,639, and subtract 15 to get 3,624. This approach has the advantage of not needing to know any numbers below the total line, but the disadvantage of being harder to calculate mentally, depending on the chosen numbers.
I hope you enjoyed this closer look at the Fibonacci addition trick, and that it gets the gears turning for other possible approaches.