[Purdue-pm] Computing Euler's Number (Perl Weekly Challenge 21)

Dave Jacoby jacoby.david at gmail.com
Mon Aug 12 11:32:31 PDT 2019


> Write a script to calculate the value of e, also known as Euler’s number
and Napier’s constant.

Which is 1 + ( 1 / $n ) )**$n , where $n approaches infinity.

It is easy to put that in a subroutine compute_euler ( $n ), and then
increment $n until you blow off the top of Perl 5's integer.

I think the closest you could get without getting into Math::BigFloat would
be 2.71828182845904 , and I'm not seeing clear enough documentation to
really work on it. I suspect that $x = Math::BigFloat->new( 1 + ( 1 / $n )
)**$n ) wouldn't work as intended, not because of problems with
Math::Float, but because Perl 5 can't handle the equation within the new()
well enough to give a Math::BigFloat result.

Meanwhile, another site says:

> But it is known to over 1 trillion digits of accuracy!

So, when is it "done"? When we get to billions of digits? The 50 digits
listed on the wiki page? compute_euler( 2 ** 53 ) to get the largest int
Perl can handle without BigInt?

I think this question is underspecified. Thoughts? Suggestions?
-- 
Dave Jacoby
jacoby.david at gmail.com

I deal with my software the way I treat my eldritch abomination:
 It's not human, it's not even alive in the natural sense.
 It's nightmare-born and nightmare-shaped, and nightmares don't die easy.
  -- @yenzie
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.pm.org/pipermail/purdue-pm/attachments/20190812/4e64dfad/attachment.html>


More information about the Purdue-pm mailing list