Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: Calculating e

by Albannach (Monsignor)
on Jul 18, 2001 at 06:21 UTC ( #97518=note: print w/replies, xml ) Need Help??

in reply to Calculating e

Not only is mdillon's solution correct, it's also much more efficient as each factorial is simply one multiply on the previous one, whereas calling the function each time means a lot more work is being done.

Now the reason for the failure is that the Math::NumberCruncher function overflows for 171!. Unfortunately it returns '1.#INF' which Perl happily treats as 1.0 in your division, so you simply divide by one from that point on, not making much more progress.

Update: While Math::NumberCruncher does not use BigFloats for it's factorial function, it does already use the Math::BigFloat module for storing its very large version of $PI (though strangely BigFloats are not used in calculations with that $PI so it's probably pointless...), so it is a trivial matter to patch Math::NumberCruncher to use a BigFloat for the factorial. This is of course for occasional uses as for an iterative use of factorial mdillon's answer is still much faster.

I'd like to be able to assign to an luser

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://97518]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (2)
As of 2022-01-29 10:33 GMT
Find Nodes?
    Voting Booth?
    In 2022, my preferred method to securely store passwords is:

    Results (74 votes). Check out past polls.