The most useful trick I've used is writing out numbers or calculations algebraically (in my head). For instance, if you're squaring a number near some round number, say 52, one can write.
Also really helpful: you can do powers by memorizing a few precomputed logarithms, knowing extrapolation and knowing how to convert bases.
My favorite method for doing logarithms tends to be a mix between a 'guess and check' Newton's method, and Feynman's algorithm:
Consider the problem of finding the logarithm of a fractional number between 1.0 and 2.0 (the algorithm can be generalized without too much difficulty). Feynman observed that any such number can be uniquely represented as a product of numbers of the form 1 + 2^-k, where k is an integer. Testing each of these factors in a binary number representation is simply a matter of a shift and a subtraction. Once the factors are determined, the logarithm can be computed by adding together the precomputed logarithms of the factors. The algorithm fit especially well on the Connection Machine, since the small table of the logarithms of 1 + 2^-k could be shared by all the processors. The entire computation took less time than division.
Yep. Most of those "tricks" are just applications of very basic algebraic principles (mostly the distributive property). It's sort of sad that math is in such a state that this kind of thing becomes novel.
There's a great chapter in "Surely your joking Mr. Feynman" about mental arithmetic.
Here's an excerpt, from when Feynman was eating at a cafe and an abacus salesman walked in and challenged Feynman to an arithmetic contest:
"He writes down a number on some paper— any old number— and I still remember it: 1729.03. He starts working on it, mumbling and grumbling: "Mmmmmmagmmmmbrrr"— he's working like a demon! He's poring away, doing this cube root.
Meanwhile I'm just sitting there.
One of the waiters says, "What are you doing?".
I point to my head. "Thinking!" I say. I write down 12 on the paper. After a little while I've got 12.002.
The man with the abacus wipes the sweat off his forehead: "Twelve!" he says.
"Oh, no!" I say. "More digits! More digits!" I know that in taking a cube root by arithmetic, each new digit is even more work that the one before. It's a hard job.
He buries himself again, grunting "Rrrrgrrrrmmmmmm ...," while I add on two more digits. He finally lifts his head to say, "12.01!"
The waiter are all excited and happy. They tell the man, "Look! He does it only by thinking, and you need an abacus! He's got more digits!"
He was completely washed out, and left, humiliated. The waiters congratulated each other.
How did the customer beat the abacus?
The number was 1729.03. I happened to know that a cubic foot contains 1728 cubic inches, so the answer is a tiny bit more than 12. The excess, 1.03 is only one part in nearly 2000, and I had learned in calculus that for small fractions, the cube root's excess is one-third of the number's excess. So all I had to do is find the fraction 1/1728, and multiply by 4 (divide by 3 and multiply by 12). So I was able to pull out a whole lot of digits that way. "
(52)^2 = (50 + 2)^2 = 50^2 + 2 * 50 * 2 + 2^2 = 2500 + 100 * 2 + 4 = 2704.
Also really helpful: you can do powers by memorizing a few precomputed logarithms, knowing extrapolation and knowing how to convert bases.
My favorite method for doing logarithms tends to be a mix between a 'guess and check' Newton's method, and Feynman's algorithm:
Consider the problem of finding the logarithm of a fractional number between 1.0 and 2.0 (the algorithm can be generalized without too much difficulty). Feynman observed that any such number can be uniquely represented as a product of numbers of the form 1 + 2^-k, where k is an integer. Testing each of these factors in a binary number representation is simply a matter of a shift and a subtraction. Once the factors are determined, the logarithm can be computed by adding together the precomputed logarithms of the factors. The algorithm fit especially well on the Connection Machine, since the small table of the logarithms of 1 + 2^-k could be shared by all the processors. The entire computation took less time than division.
http://www.longnow.org/views/essays/articles/ArtFeynman.php