Hacker News new | ask | show | jobs
by barrkel 5931 days ago
I don't think that's clearer. Factoring quadratic equations is taught in schools, and that's where you learn how to multiply out expressions of this form:

    (ax + b)(cx + d) = ax(cx + d) + b(cx + d)
                     = acx^2 + adx + bcx + bd
A special case of these factorizations is:

    (ax + c)(ax - c) = ax(ax - c) + c(ax - c)
                     = a^2x^2 - acx + acx - c^2
                     = a^2x^2 - c^2
The reason it's a special case is because there's cancellation of the terms. So starting out with this is useful, as it's likely to be something people have met in school - but people needn't remember the factorization (which isn't strictly speaking needed much - we have an equation for solving this), just how to multiply the terms (which is used more often). From it, we can derive all that's needed for the trick, without any odd moves.

With your own version, you have to introduce a term which adds up to zero - (r^2 - r^2) - for no obvious reason, and then you need to already know how to factor x^2 - r^2 to (x + r)(x - r) in order to understand the last step.

So I think your version is less easy to understand because it's not clear why the first step is what it is, and it relies on more recollection of school arithmetic.

(The only reason I expound at length on this is because I think what makes something obvious or easy to understand is a deep topic, linked to what's assumed to be known beforehand and the size of inferential jumps between steps, and is important for programming, writing, and indeed all communication.)