Monday, August 26, 2013

Number Tricks and The Toronto Star Paywall


Here's a little trick to play on kids:

1.  Ask them to hold up all ten fingers.
2.  Starting on one hand, count down "10, 9, 8, 7, and 6".
3.  Ask them how many fingers are on the other hand, and they'll say "5".
4.  You then say "So 6 on this hand, plus 5 on this hand is how many?"
5.  The kids normally look at you all confused and say "11?".

Of course, there's not 11 fingers - it's just about confusing people with the facts.

I guess this would be the "grown up" version of the same thing:
* Three people at a cafe generate a $25 bill.  
* They each put in $10, so there's $30 on the table.  
* The waiter gives them all back $1 each, and keeps $2 as a tip for himself.  
* If they all put in $10 and got a dollar back each, then they've now all paid $9 each.  
* So to recap:  Three x $9 is $27 and the waiter has $2. 
* That's only $29, so where's the other missing dollar?

Again, this relies on totally mixing the facts to confuse people.

Over the weekend, it hit me that I've seen this issue in real life recently.  After a little fiddling about, I've concluded this numbers phenomenon is the same thing affecting the Toronto Star paywall.  

Here's how it plays out at The Star:
1.  I reset the paywall to give me another 10 articles again for testing.
2.  I then counted the articles off.  10, 9, 8, 7.
3.  At this point, the system says I've 7 articles left.  This is the first error (we've done four, so "6" is the real number).
4.  I then counted off the numbers on the next chunk.  1, 2, 3, 4, 5. (they go "6, 5, 4, 3 and 2")
5.  At this point, the system says I've 2 articles left.  This is the second error (5 + 4 = 9… so "1" is the real number).
6.  I then counted off the next chunk.  1, 2, 3, block.  This is the third error. They've likely gone "2 articles left, 1 article left, zero articles  left,  block".  It should have been "1 left, none left, block".

What's gone wrong here is a zero based numbering issue where they're mismatching the counting logic.  This is a common mistake seen in arrays and loops in many programming languages.

To go back to the first example above for kids:
1.  Ask them to hold up all ten fingers.
2.  Starting on one hand, count down "9, 8, 7, 6 and 5".
3.  Ask them how many fingers are on the other hand, and they'll say "5".
4.  You then say "So 5 on this hand, plus 5 on this hand is how many?"
5.  The kids normally look at you not confused and say "10!".