Math::Random::NormalDistribution - Normally distributed random numbers.
use Math::Random::NormalDistribution; # Create generator of normally distributed numbers # with mean 5.0 and standard deviation 3.0 my $generator = rand_nd_generator(5.0, 3.0); # Generate ten numbers my @nums = map { $generator->() } (1..10);
This module uses Box-Muller transform to generate independent, normally distributed random fractional numbers (the normal deviates), given uniformly distributed random numbers (the source is common rand).
rand
There's only one function in this package and it's exported by default.
rand_nd_generator($mean, $stddev)
Accepts the mean (also known as expected value, or mathematical expectation) and the standard deviation (the square root of variance). Both arguments are optional - by default, the generator returns standard numbers (with expected value 0 and standard deviation 1).
Returns a subref: reference to a function without arguments, which returns a new random number on each call.
For example, just draw a simple chart:
use Math::Random::NormalDistribution; my $LINES = 10; my $VALUES = $LINES * 15; my @count = (0) x $LINES; my $generator = rand_nd_generator($LINES / 2, $LINES / 6); for (1 .. $VALUES) { my $x = $generator->(); my $idx = int($x); next if $idx < 0 || $idx >= $LINES; $count[$idx]++; } print '|' x $_, "\n" for (@count);
Output:
|| |||| ||||||||||||| |||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||||||||||||||||||| ||||||||||||||| ||||||||||||| ||||| |
Math::Random::SkewNormal.
Copyright © 2013 Oleg Alistratov. All rights reserved.
This module is free software. You can redistribute it and/or modify it under the terms of the Artistic License 2.0.
This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.
Oleg Alistratov <zero@cpan.org>
To install Math::Random::NormalDistribution, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Math::Random::NormalDistribution
CPAN shell
perl -MCPAN -e shell install Math::Random::NormalDistribution
For more information on module installation, please visit the detailed CPAN module installation guide.