Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: geometric random distributions

by Moron (Curate)
on Jun 08, 2007 at 07:18 UTC ( #619971=note: print w/ replies, xml ) Need Help??


in reply to geometric random distributions

It's usually a trivial matter to create a geometric random number generator. For example, this expression will produce a random number in the range 0 to 1 with a (update co-)sinusoidal probability density function:

use Math::Trig; # to get PI my $sinerand = sin( rand() * PI );
(update: the probability density function of a random number generator is the derivative of the generating function, so in this case a cosine density shape is therefore being produced.)

A simple integration is also needed for the triangular distribution: Its probability density function has a smooth gradient so the generator satisfies the equation dy/dx = gradient. So integrating that straight line function, gives the generating function: 1 - (rand() ** (1+gradient))) would give a random number with a triangular probability density function coming out.

The reason the normal distribution is an exception deserving a special method is that its cumulative distribution function isn't analytic but can only be expressed as an integral equation. (Update: or as a Taylor Series.) You would need to achieve an impossible integration (in closed form) to compute the generating function that can produce a normal probability density function as its output. In practice some kind of approximation has to be used (Update: usually by taking the first few terms of the infinite Taylor series - although I have to say the module either doesn't or doesn't obviously do that!)

__________________________________________________________________________________

^M Free your mind!


Comment on Re: geometric random distributions
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (10)
As of 2015-07-29 22:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (269 votes), past polls