Python fails on math

David C. Ullrich dullrich at sprynet.com
Tue Feb 22 17:54:46 CET 2011


In article 
<127fc97e-c210-4df1-952c-f6383d44bd9a at o8g2000vbq.googlegroups.com>,
 christian schulze <xcr4cx at googlemail.com> wrote:

> Hey guys,
> 
> I just found out, how much Python fails on simple math. I checked a
> simple equation for a friend.
> 
> [code]
> >>> from math import e as e
> >>> from math import sqrt as sqrt
> >>> 2*e*sqrt(3) - 2*e == 2*e*(sqrt(3) - 1)
> False
> [/code]
> 
> So WTF? The equation is definitive equivalent. (See http://mathbin.net/59158)

An amusing aspect of this is that the equations posted at that
link are "definitive" wrong.

Anyway, I don't know why you're jumping to the conclusion that it's
Python that's wrong here. Could be the math you learned in school
is wrong. I mean you're assuming that

(*)       a(b+c) = ab + ac

but what makes you so certain (*) is correct? Have you tried it with
every possible value of a, b, and c? Or do you just blindly believe
everything your teacher told you or what?

Seems to me you've stumbled on a counterexample to (*). I'm
gonna have to take this up with the mathematicians...

> PS:
> 
> #1:
> >>> 2.0 * e * sqrt(3.0) - 2.0 * e
> 3.9798408154464964
> 
> #2:
> >>> 2.0 * e * (sqrt(3.0) -1.0)
> 3.979840815446496
> 
> I was wondering what exactly is failing here. The math module? Python,
> or the IEEE specifications?
> 
> --

-- 
David C. Ullrich



More information about the Python-list mailing list