i'm working on a perl script and i need a very specific random number generator.

what i have right now is multrand. it returns a random number between x/y and x*y, with the median result being x. half the time less than x, half the time, greater than x.

i want to build a sub that returns a random in the same range, but with the result more likely to be closer to x.

with a simple random, i'd just run the sub z times and return result/z. graph the results of that, and you get a bell curve.

the results/z method won't work here because i still want the results to be half the time less than x and half the time greater than x.

any ideas?

sub multrand { my ( $inmed, $inmult ) = @_; my $randreturn = 0; # $randtemp is used to determine if result will be more than, +less than, or equal to original my $randtemp = int(rand($inmed * 2)); if ( $randtemp > $inmed ) { # $randreturn can be up to $inmed * $inmult $randreturn = int(rand(($inmed*$inmult)-$inmed)) + int +($inmed); } elsif ( $randtemp < $inmed ) { # $randreturn can be as little as $inmed / $inmult $randreturn = int(rand($inmed*(1-(1/$inmult)))) + int( +$inmed*(1/$inmult)); } else { $randreturn = $inmed; } if ( $debug > 2 ) { print "$randreturn\n"; } return $randreturn; }

In reply to custom random number generator by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.