Hacker News new | past | comments | ask | show | jobs | submit login

Maybe it's just me, but multiplication tables are one of the few useful things I got out of primary school. To this day I use this often, almost daily. I mean to call them USELESS is pretty severe mischaracterization of them.



Yeah, I'm really confused how someone could see multiplication tables as useless. I'm not sure how anyone could become adept at multiplying without memorizing the relationships between common numbers. Are there grown people out there who add up 8 8's when they need to solve 8*8?


There are grown people who plug 8*8 into their phones


"You will need to learn this because you won't always have a calculator with you"

Turns out, you do always have a calculator with you.


A calculator, for me, really doesn't replace the utility of being able to do some basic mathematics in my head. Even if you don't run into a lot of uses for mental math, I'm in the camp that thinks learning 1-10*1-10 and building a sense for numbers will aid in understanding of other concepts and in developing other cognitive abilities. Some carefully designed experiments could convince me otherwise.


It's not about having a calculator. It's about making quick connections when encountering new facts or numbers. Without sizeable core of memorized facts, results and numbers you will miss a lot of those. It's the very definition of being not that smart.


I often leave my phone at home to clear my mind and get away from things. I try to be phone free for about 4 hours a day. And during this time I almost always go out. And often I use my multiplication table during this time.


Being able to easily calculate e.g. $/100g to a rough degree without reaching for your pocket is super handy.

I think we could gain from emphasizing math with orders of magnitude, and knowing 1/n's would be super handy too.


EXACTLY!


You can skip the whole memorization pain by rigging at most 3 additions together. You just have to know that adding a number to itself is doubling and adding it again is tripling and multiplication by 10 can be done by simply writing zero on the end.

2x = double it. 3x = triple it. 4x = double it twice. 5x = ... 6x = triple it then double it. 7x = ... 8x = double it thrice. 9x = from 10x subtract it once. 10x = put "0" on the end.

That gets you everything but 5x5, 5x7, and 7x7. That's just 3 things to memorize instead of 55. I usually get the 5s by just halving 10x, which then handles every case but 7x7. The overhead of doing 2 (sometimes 3) mental additions isn't much worse than memorizing everything as a singular operation and this way of doing things makes it a bit clearer what multiplication represents rather than being an arbitrary thing to memorize because teacher said so.

To hell with primary school. Memorizing is for suckers.


Congratulations, you now do multiplication like my 8 bit 6502 used to do..

BTW 5x is "double it twice (4x) and add it (1x)"

Personally, for up to 10x10 - I prefer a lookup table (both mentally and in code)

P.S. It's been 30 years? since I had to implement it, but as I recall multiplication could be done by any number with just doubling and adding the initial value.. 2x = double 3x = double +x 4x = double the double, etc. any even multiple be done just by repeating the doubling, and odd multiples are gotten by repeated doubling + adding the starting value.

This worked great for cpu's as 'doubling' was just a bit shift left 'x' number of times - very fast.


This worked great for cpu's as 'doubling' was just a bit shift left 'x' number of times - very fast.

Except that you'd get a summation with the number of terms equal to the number of bits in the source operands. Multiplication in a CPU only seems very fast because the theory is simple. Building a fast multiplier in silicon requires a lot of area and a lot of interconnect, because you don't require "just" a massive addition table, you also need carry lookahead logic to perform fast carry propagation otherwise you get no speed increase.

A naive multiplier in a CPU requires 1 cycle per result bit (multiplying two 32-bit numbers requires 32 additions, then you need to wait another 32 cycles for full carry propagation). That's very slow, in CPU terms.


not quite sure what your getting at here...on a simple 8 bit like the 6502, you were generally dealing with plain binary, not some IEEE standard, so you get at most a single addition (if the multiplicand was odd), and just threw an 'overflow error' at the end if the carry/overflow bit was set... Now arbitrary length BCD...THAT was a PITA

But again, it was 30 years ago so my memory may be fuzzy.

Edit: Hmm - if I recall, it was something like: and the value with x01 to check LSB,

asl value, (multiplicand masked with LSB=0),

if LSB check was true, add value to result,

check overflow flag ?

Again, this was simple binary data usually of a fixed 1 byte or 2 byte length. we used BCD for 'real work' and I can't even remember how that was done...


How do you get to "at most a single addition"? Even when multiplying any N with a 4-bit number like 14 (0b1110), you'd get at least two additions: (N << 1) + (N << 2) + (N << 3). And that is assuming you already have spent the additional lookahead logic to skip the addition step if the source operand has a 0 bit (which most implementations don't do, because the zero detection logic requires even more logic gates in addition to the adder tree).


Ahh - yeah, my bad...

I always remember it being much simpler then it appears it was. Guess I'm getting rusty from using fancy languages with built in multiply instructions :-)


Don't know if I'm the weird one but I always do 5x as "multiply by 10 then divide by 2" you just need to put a 0 at the end and get half of that result which is not a complicated mental calculation.


That actually sounds easier...


I know. And 7x can be done from taking 3x off the 10x, and 8x can likewise save an addition by taking 2x off the 10x I intentionally left the 5s and 7s blank because they are 3-addition operations and also require you to mentally hold on to the very first number. Instead of the overhead of juggling an extra value and doing an extra step, I find it easier to switch around the multiplication terms and handle them using a different rule. The remaining cases of 5x5, 5x7, 7x7 are small enough to effortlessly memorize. Especially since 5x can be done with counting by 5 (which is just normal counting but with 0 and 5 appended to everything). 6 ends up being the only thing in the 10x10 table that requires 3 additions to reach. All the others can be done with just 2 additions/subtractions. For 8 you get a choice between 3 additions or 2 subtractions but with temporarily juggling one extra number.

If you add division by two into the list of primitives, 5 and 6 become accessible within 2 steps and so the system can reach the whole 10s table within a cost of 2 (times 10 is considered a zero cost step). That makes the cost one step worse than traditional memorization but you end up being faster overall because you only need to focus on being fast at the three primitives.

Recognizing the general principle that you can change A into BC or (B+C) where B and C are both easier to multiply with than A is far more useful than memorizing the table. The best part is except for the (optional) division by two, all the primitive operations are things you already learned how to do at that stage. You can short circuit a tedious, long and wasteful part of the early math curriculum AND walk away with genuine understanding of why the rules are and how to figure things out for yourself. While everyone else struggles to multiply by 17, you can be the smarty who doubled 4 times and added once. Or put zero at the end, doubled, and subtracted 3x. Or put zero at the end, subtracted 1x, doubled it, subtracted 1x. With a bit of thought, you can extend the entire multiplication table to 20x20 such that very few rarely does anything cost more than 3 steps.


Tractenberg rules can be used, although I haven't tried it.

1: https://warbletoncouncil.org/metodo-trachtenberg-11215


I often find myself wishing my mental maths was better in general, I'm pretty dreadful at it and while I'm never more than five seconds or so away from a calculator it's still sometimes a slowdown and context switch I could do without.


(20% serious) Play Sid Meier's Alpha Centauri. A useful thing to do there is to rush-buy improvements, but to spend just enough energy credits that it gets finished the next turn. For example, if it would take 52 credits to purchase a Recycling Tanks, and the base produces 3 minerals per turn, then you want to spend 52 - 3 * 2 = 46 energy, and the game would let you do that. One does quite a lot of arithmetic that way...




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: