Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Times Table Rock Star

When I was a child, the schools tried to get me to memorize the multiplication tables. At least through ten, teachers would say. I thought it was pretty silly.

You shouldn't force memorization. It should come naturally as you use certain things many times. If you use 7x6 often, you will remember it. If not, you will forget it. That should be totally fine. Why should it matter if you memorized 7x6 or you had to go the long way and say 7x5 is 35 so add 7 to 35 and you'll get 7x6?

Imagine if you said, good programmers are often fast typists and some idiot decided to add a touch typing test to their hiring process.

» Goodhart's law is an adage often stated as "When a measure becomes a target, it ceases to be a good measure".

Edit turn asterisks to x. Please read x as multiply.



I'm a mathematician. When I was in grade school they told us to memorize up to twelve. But I figured I could skip the evens, because doubling is easy, so I would just memorize the odds. One is trivial, three and five are simple, as is eleven. There is an easy algorithm for mine. So I memorized seven and called it done.

When I think of the thousands of multiplications I've done since then, it's clear I was a dope and my teachers were perfectly right.


I noticed that there's really only a 4x4 square in the multiplication tables (6-9) that aren't obvious, and since the table itself is mirrored along the diagonal, there are only really 9 entries you truly need to memorize: 6x6, 6x7, 6x8, 6x9, 7x7, 7x8, 7x9, 8x8 and 8x9.


The only unintuitive element of the times table is 8*7=54.


"8, 7, 54" !?

I do not get the joke. What do you mean?

Suppose now somebody threw in that expression seriously. Would not that be an admonition to learn the tables and learn each element properly (do, check, memorize; do, check, memorize, check, check, check)?


Not sure if there's a separate in-joke involved, but 7x8=54 was a joke in the article.


I Disagree. This "you only need one eye and one ear - two is redundant" approach to memorization is a root with the dire situation of today, in which I know youngsters with some diploma who can go "I thought that 5x8 was [any number]. Really it is 40?!".

While studying, in general, mnemonic hooks pose a foundation for further notions to become solid. Then, the whole of them become available micro-tools for reasoning.


Hard disagree. The multiplication table is incredibly useful when making back of the envelope calculations.

You can cheat though. 2, 5, 9, and 11 have simple deterministic algorithms you can apply to get the result. These help, but the multiplication table is one of the only useful maths concepts that's stuck with me from grade school.


I've gotten pretty good at deconstructing (a+b)c into ab + ac and working that out in my head - for example, 36 x 3 is (30+6) x 3 = (30 x 3) + (6 x 3) = 90 + 18 = 108. Couldn't do it if I didn't remember the multiplication tables up to 10 though.


Back of the envelope means you can estimate so you don't need it memorize the whole table.


You need those key→value promptly available when you are actually performing the "back of the envelope" computations.


Remark #2 on the same:

look, rightly, you do not need to memorize them tables by recitation¹: but consistently, then, you should (as a learner) actually perform all of them multiplications for as many times as needed to make you know them results as if you memorized them even in a less "experienceful" manner.

¹Which is not at all necessary, by the way - on the opposite. When you go, "5x6=30", you are not supposed to keep that in a mental veneer while you think of some random else: you are supposed to keep that thought rooted to its foundations made of structures built on (six and five) sets of five and six, and internally see it as evident. You can recite with presence and awareness.


I did something like this to learn the times table in grade school. What the school wanted us to do seemed ridiculous and extra boring, and I figured that if I just kept a visible table handy while doing the multiplication exercises, it'd go into memory along the way "for free". This worked.

Maybe it might not work well for others, though you'd expect there's some learning method better than how they did it in my day, on both effectiveness and fun. (I forget exactly how we were supposed to do it.)


If you are unable to recite 7x6 and reach for the calculator for it, I don't think many people will memorize it.

I did the same, up to 20. I've used it so much since then that even though it seemed silly at the time of learning, it has proved that my total time saved is far greater than the time spend memorizing it. It helps that I went to STEM for university and in general are interested in it. But I'd say over a lifetime average Joe/Jane that handle a normal persons finances will at some point have saved more time than spend learning it.


> It should come naturally as you use certain things many times.

But if it's not second nature, you may decide not to do it many times. Is it "need this -> gets memorized" or "memorized -> can use as tool"?

Personally I've never been a proponent of memorizing things, preferring to Google when needed, but I can see how the argument runs.


> You shouldn't force memorization. It should come naturally as you use certain things many times. If you use 7*6 often, you will remember it. If not, you will forget it. That should be totally fine. Why should it matter if you memorized 7*6 or you had to go the long way and say 7*5 is 35 so add 7 to 35 and you'll get 7*6?

As it turns out, though intuitively appealing, this idea is wrong.

You can't learn to touch-type by programming. You have to focus some effort on specifically the touch-typing aspect of things. Half an hour a day of directed practice at touch-typing for a month will improve your typing speed more than ten hours a day of programming for a year. Similarly with multiplication tables: if you devote the necessary effort to memorizing the 28 or so necessary facts and speeding up recall on them, your speed at long multiplication increases dramatically. In my childhood I refused. When confronted with a multiplication problem, I would get medieval on it: mediation and duplation! This was a bad strategy.

In fact, I've often wondered if committing more lookup tables to memory might help more. Consider the Briggsian logarithms:

    log₁₀ 1.1 = .0414
    log₁₀ 1.2 = .0792
    log₁₀ 1.3 = .1139
    log₁₀ 1.4 = .1461
    log₁₀ 1.5 = .1761
    log₁₀ 1.6 = .2041
    log₁₀ 1.7 = .2304
    log₁₀ 1.8 = .2553
    log₁₀ 1.9 = .2788
    log₁₀ 2.0 = .3010
    log₁₀ 3.0 = .4771
    log₁₀ 4.0 = .6021
    log₁₀ 5.0 = .6990
    log₁₀ 6.0 = .7782
    log₁₀ 7.0 = .8451
    log₁₀ 8.0 = .9031
    log₁₀ 9.0 = .9542
Consider the problem of computing the horizontal scan frequency of a minimal viable text terminal CRT. It refreshes at 60 Hz, contains 24 lines of text of 8 scanlines each, and has a 10% VBI, so the problem is multiplying 60 · 24 · 8 · 1.09. In Magic Logarithm Land, we just have to add the logarithms. We can mentally interpolate log₁₀ 24 as 1.30 + .4 · (.48 - .30) = 1.38 and log₁₀ 1.09 = .9 · .04 = .04, so we have 1.78 + 1.38 + .90 + .04 = 4.10, which is between 4.08 and 4.11, so the answer is about 12800 Hz. The exact answer with the multiplicands as given is 12556.8, so that's less than 2% error, as it usually is when rounding to two places. Even that is excessive precision given the fuzziness implicit in the VBI figure.

I can't actually do this mentally, partly because I haven't memorized even the list of 17 logarithms listed above, so instead what I end up doing is something like, well, 24 · 8 is about 25 · 8, which is 200, and ×60 gives 600 + 600 = 12000, and then we add 10% for 13200, and then we'll be about 5% high because of rounding up the 24 and the 1.09, which also gives 12700 or 12800. But I can't help thinking that mentally adding 78 + 38 + 90 + 4 would be easier!

Memorizing a quarter-square table for the integers up to 100 would also help with this kind of thing.

Agreed, though, that a typing test for programmers or a times-table test for mathematicians would be counterproductive.


Sure having your tools ready - in some cases this means, memorized - will be useful when needed, but.

Consider your example of the CRT. You are for interpolating, I tend towards factoring - no issue.

First we memorize the log₁₀ of the main factors:

  2→ .3 , 3→ .48 , 5→ .7 , 7→ .845 , 11→ 1.04 , 13→ 1.115 , 17→ 1.23 , 19→ 1.28
...a good exercise that may allow us, potentially, to perform mental computations through simpler operations within a 1% error margin.

And we could, in the example, perform (.78+1)+(.9+.48)+.9+(1.04-1) = 4.1 . Good. But now, one still needs a calculator to perform 10^4.1 ... :) This does not happen when we mentally multiply - we have ways to remain within acceptable approximation and still not need "crutches" printed in paper or silicon.

Though of course, again: better with than without resources. For what I am concerned, that handful of factors will be memorized with priority not inferior to the date of the battle of Bosworth.


You don't need a calculator to perform 10⁴·¹; 10·⁰⁸ = 1.2 and 10·¹¹ = 1.3, so (interpolating) 10·¹ is about 1.27, so 10⁴·¹ is about 12700. (The truth is about 12590, but that's within the margin of error.)


You are right, I did not realize.

But one should use more precise values to make it work.

10^0.08 = 1.202 and 10^0.115 = 1.303 : 20/35 in the distance from 0.08 and 0.115, where you have 0.1, you likewise proceed with the same proportion on the results and obtain 1.202+0.057 = 1.259

Thing is, practice is required, and experience in managing precision confidently in this realm.

Edit:

In fact, the linear interpolation can work surprisingly well, but the space in linear vs logarithmic remains warped, and it is easy to err without realizing.

I just threw those numbers in a calculator to verify it:

  l12.d = Log10(1.2)           ==>  0.0791812460476248175522684
  l13.d = Log10(1.3)           ==>  0.1139433523068367759556452
  dst.d = (0.1-l12)/(l13-l12)
  lrs.d = 1.2 + 0.1*dst        ==>  1.2598892190166359750236325
  Log10(lrs)                   ==>  0.1003323596533426953492096
  Pow(10,0.1)                  ==>  1.2589254117941672816982646


Sure, especially with very imprecise values like 1.2 and 1.3 the error can be quite significant; generally you only interpolate tenths to get a single extra digit of precision, because mentally multiplying or dividing by .2 or .3 is a lot easier than multiplying by 20/35 or something. In theory you could use a more precise form of interpolation like quadratic Hermite interpolation or cubic spline interpolation, but for mental work I think that almost never pays off.

You may be aware that the linear interpolation error for a regular function scales as the square of the interval size, so if the table you're interpolating from has 10× as many entries, you get 100× less absolute error.


Sorry but I have difficulties in reading your intention in

> We can mentally interpolate log₁₀ 24 as 1.30 + .4 · (.48 - .30) = 1.38

Easily one could go log₁₀ 24 = log₁₀ (6*4) = .78+.60 = 1.38, for example,

but you went something along the lines of "log₁₀20 + .4 · log₁₀(3/2)", making "24" read as something like "20x(3/2)^(4/10)"... What was the intended process?


Sorry! I was saying that 2.4 is between 2.0 and 3.0, whose logarithms are .3010 and .4771. The distance from .3010 to .4771 is .1761, or .18 to two places, so if we linearly interpolate .4 of the way from .3010 to .4771, we get .3010 + .4 · .1761 = .3010 + .0704 = .3714. Doing it with two-place logs, we get .30 + .4 · .18 = .37. The correct value for log₁₀ 2.4 rounds to .3802, so the linear interpolation is not very precise.

In fact I happened to make an error in the mental interpolation that coincidentally was in the right direction: I estimated .4 · .18 ≈ .4 · .2 = .08, giving me the more correct .38 by luck.

It is of course true that if you factor your numbers you can get better precision with fewer table entries, as you did. But I think it's easier to mentally routinize linear interpolation between table entries so you can do it instantly than to mentally routinize factorization. Such mental linear interpolation was commonplace when using physical printed books of logarithm tables because it easily gives you, say, 4-place precision out of a 3-place table, allowing you to use a book that's one tenth the size and contains one tenth the incorrect entries.

Even very small amounts of memorization can give you lots of logarithms if you do mental work with them. With just log₁₀ 2 ≈ .3010 (and log₁₀ 10 ≡ 1), we can easily derive log₁₀ 5 ≈ .6990, log₁₀ 4 ≈ .6020, log₁₀ 8 ≈ .9030, log₁₀ 2.5 ≈ .3980, log₁₀ 1.6 ≈ .2040, log₁₀ 1.25 ≈ .0970, etc. If you additionally know log₁₀ 3 ≈ .4771, you can easily get 6 = 2·3, 9 = 3·3, 1.2 = 6·2/10, 1.8 = 9·2/10, 2.4 = 1.2·2 (as you said), 1.5 = 5·3/10, etc.

Equal temperament takes advantage of the fact that 3 is very close to 2 to the 19/12 power, about 0.3% larger; note numbers are frequency logarithms to the base of the 12th root of 2. Unfortunately that isn't very helpful if the numbers you need to calculate with are given in decimal form...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: