Hacker News new | past | comments | ask | show | jobs | submit login
Street-Fighting Math: Educated Guessing and Opportunistic Problem Solving (2010) [pdf] (mitpress.mit.edu)
260 points by 7402 on May 15, 2017 | hide | past | favorite | 30 comments

I feel this was a response to this recent submission as perhaps an example of a math text that is less traditional? (Could be interesting to look at the discussion and see how this text holds up?)

Why do many math books have so much detail and so little enlightenment? (2010)

> https://news.ycombinator.com/item?id=14338411

It's an interesting comparison to be sure, but I'm not sure Street-Fighting Math has a lot to offer graduate-level pure math texts (the subject of that post).

I own and love the book, and did a lot of pure math in my math undergrad degree. But SFM is closer to the tradition of Martin Gardner's long-running "Mathematical Games" column in Scientific American than real higher pure math education.

I think that's because it hinges on giving you tools to "hack" problems in physics, geometry and calculus that leverage intuition about quantities and space. There are branches of pure math where this matters a lot, but frankly it's not going to help you learn about Lie groups or category theory. It's not clear to me that the style and approach of SFM is helpful in this kind of very abstract context where a detailed understanding of unfamiliar sorts of concepts and mechanics is crucial.

True. The title alone lets you know it's not teaching you braid theory. But in terms of providing a different perspective to read, teaching, learning mathematics - that is where the comparison or interesting bits could lay. Also, have you (or anyone here) taken the Stanford course "Introduction to Mathematical Thinking"?

> http://online.stanford.edu/courses/mathematical-thinking-win...

The other book [1] is even better. Unfortunately, there is no free lunch. Knowing when it's ok to cut corners is more important than how to cut corners, and there does not seem to be an easy way to learn that.

[1] https://mitpress.mit.edu/books/art-insight-science-and-engin...

There was this estimation technique one of the Sixty Symbols professors talked about, where you do all of the calculations, but you only keep one significant digit. It's something you can do quickly in your head while conversing with someone, but tells you pretty reliably if something is feasible.

When the first digit becomes 1 keep two digits. A small effort for much higher precision. (Something to do with Benford's Law? Maybe.)

Sounds Benford-y, yeah. The biggest relative "error" in [0,99] is going to be at 19, where the estimate (1 * 10^0) at only ~52% of the actual value (1.9 * 10^0). That local minima for accuracy recurs at 199, 1999, etc. From some quick spreadsheet-fu, the mean underestimation for [0,9999] is 88%.

Meanwhile, with the "teens" trick, the local minimum is 29 (68.9%) and then at 299, 2999, etc, and the mean underestimation is boosted to... huh, only 91%?

Then again, I'm assuming a completely even distribution, which probably won't be true in some contexts.

I like it! It's small additional effort for more precision. However, the estimation technique above is optimized for very small effort. You can do the very lightweight version in the middle of a conversation in your head without unduly derailing the conversation. It's a different tool with different trade offs. It's the keychain multitool of estimation methods.

This makes sense. If the number is 5.5 by throwing away the .5 you lose less than 10% of precision. On the other hand if the number is 1.5 and you throw away the .5 you lose 50% precision.

Like "Fermi Problems" and back-of-the-envelope math?

> https://en.m.wikipedia.org/wiki/Fermi_problem

This is also available as an online course: https://ocw.mit.edu/courses/mathematics/18-098-street-fighti...

From the forward, "With rare exceptions, the mathematics that I have found most useful was learned in science and engineering classes [or] on my own".

This has been the case for me too. I never learned this in a class in school, but one of the most important things I've always done when learning some mathematic topic is try to #1 associate it with something in the real world and #2 find a way to "guestimate" without a calculator what the answers will be. For instance, take square roots. The sqrt of 137 will be between 11 and 12 more precisely about 11.7 and I can visualize it in my head as one side of a 2D square shape. Also squares and square roots allow me to easily think about the area covered (size/shape) by N-dimensions in relation to the size of just one dimension. A real world application which is interesting to note is that the time it takes a falling object to hit the ground is equal to the square root of the distance traveled (really 2 times the square root divided by gravity but the general relationship is the same).

More math books and discussion:


I have tried this book a few times, and I'm awed by it, yet I am not significantly better. I fear the problem is that when Sanjay refers to educated guessing, the level of education and practice is very high indeed. While I can marvel at the examples in the book, I would need a steady stream of work-a-day examples to work through, ala Project Euler.

This complaint about the way math is currently taught, and the ensuing new approach, both remind me of "A Mathematician's Lament" [0] by Paul Lockhart.

[0]: https://www.maa.org/external_archive/devlin/LockhartsLament....

Back in 2010 I ran across Sanjoy's method for using the musical scale to perform more complicated arithmetic (mentally calculate pi^6 +/- 5% within 30 seconds).

Can't wait to read the entire work.

pi^2=10 so pi^6=1000?

This is within 5% of the real answer, but does not not involve music!

I chose a coincidentally easy problem (whoops).

Here's another one, less accessible to attack: Find e^7. Or 25000^(1/8).

The trick to using the musical scale is that it's logarithmic in frequency but linear in key (ABCDEFG). The frequency step between adjacent notes is 2^(1/12); the frequency jump over an octave is 2; the frequency jump over 40 notes is 10. There are other handy ratios to remember, like that going up a whole step is a frequency increase of 9/8, and the more you know the more powerful this method is.

To solve 25000^(1/8) = x, you're looking for an interval x on the keyboard such that if you were to go up 8 of those intervals, the frequency would jump by 25000. Well, 25000 is just 10^5 / 2^2, or in terms of keyboard intervals, "Go up 40 notes (repeat four more times), then down two octaves". This means to represent a frequency increase by a factor of 25000, I need to go up 105-212 = 176 half steps on a keyboard.

Divide by 8 to find x = 22 steps, which is two octaves minus a whole step on the keyboard. The frequency change over this 22-step interval is thus (2*2) [up two octaves] / (9/8) [down a whole step] ~ 3.5. So that's the final answer: 3.5

The actual value of 25000^(1/8) is 3.546, so this approximation is good to within a couple of percent.

A good trick for calculating powers of e is that e^3 ~ 20. So e^7 is roughly 400e, so about 1080, completely without pen and paper. This is only 1.5% off.

Your trick is cool too, by the way.

For your other challenge, I would use the enormously useful 2^10 = 1024 ~ 1000 (which the musical trick implicitly uses too, in the 40 notes is 10 times the frequency mnemonic). So 25000 is close to 5^2 * 2^10, and it's square root is 5 * 2^5 = 160 (we can always keep in mind that 2^10 ~ 1000 is an overestimate by 2.4%, so our 160 ~ sqrt(25000) is an overestimate by 1.2%, so an improved approximation of sqrt(25000) is 158). 158 is very close to the midpoint of 144 and 169, so its square root is not far from the midpoint of 12 and 13. So my approximation of 25000^(1/4) is 12.5. Finally I need to take a sqrt of that. I know the square of 3.2 is 10.24 (our old friend 2^10 = 1024), and that's about 20% too low. Ok, we need to bump our 3.2 up by 10%, that makes is 3.52, and that's our answer. It's only 0.7% off, but it's only by luck. For a more general problem, keeping a tab of your first estimate as an absolute number and your current correction as a percentage gives an error of less than 2%.

If you memorize some of the "nice" log10 approximations like

  log10 2   ~= 0.3
  log10 2.5 ~= 0.4
  log10 3   ~= 0.5
  log10 4   ~= 0.6
then 25000^(1/8) could be done mentally as

  log10 of 25000 is 4.4
  4.4 / 8 is 0.55
  antilog10 of 0.55 is approximately 3.5

For one, actual scales aren't exactly purely logarithmic because of physical limitations (overtones in low freqs) and secondly music has nothing more to do with it than any other log scale, eg ... well I don't actually a more common one

Sanjoy is rad. This should be a must-read for engineering school.

At my local Boeing plant the engineers write WAG (wild a-- guess) on something when they're spitballing and don't want to do the math, I wonder how frequently a WAG can be made more precise if this were more widely read.

I've heard good reviews. Have had this downloaded on my mobile for a few years now ... should get around to reading it "soon" -_-

I understand your problem :) I've partially solved it by dedicating my lunch hour to (along with eating) reading some good non-fiction book. Bit by bit, you make progress.

Obviously, you could do it some other time, but the important part is to make it a habit, so that it feels almost automatic to do, or that you feel like something's missing/feel guilty if you skip it.

Actually I used to read in lunch hour. I used to specifically eat lunch later than my peers so that I don't end up going in a group (I know, I know, I was picking reading over society ...). But of late my workload has increased a lot, so I'm having lunch at my desk.

You're right about making a habit. I am trying to read an hr before bedtime or an hr right after office (when I reach home) nowadays.

I took a class with the Sanjoy (the author) this past fall. Awesome guy and a great teacher.

I thought this was going to about Street Fighter[1] machine learning

[1] https://en.wikipedia.org/wiki/Street_Fighter

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