# Gaussian pseudo-random numbers -- math issues

Michael Lew michaell at unimelb.edu.au
Wed Oct 22 20:14:54 EDT 2008

```Dear Tim,

I have an extensive library of statistical maths routines. This handler and
function will get you going with your problem:

on mouseUp pMouseBtnNo
put fld "MeanFld" into tmean
put fld "stdevFld" into tstdev
put fld "sample sizeFld" into n
put fastNormalDeviates(n) into tdevs
split tdevs by return --to make it into an array
multiply tdevs by tstdev --to make the scale the stdev to the desired
value
add tmean to tdevs --to obtain the desired mean
combine tdevs with return
put tdevs into fld "outputFld"
end mouseUp

function fastNormalDeviates howmany
--returns random deviates from a normal distribution mean 0, stdev 1.
--Fast algorithm simply averages many deviates from uniform
distributions.
--Many times faster than Gasdev-based algorithms.
--Values returned are return-delimited.
if howmany is empty then put 1 into howmany
repeat howmany
repeat 20
add random(10000) to tsum
end repeat
put (5000.5-(tsum/20))/645 & return after tvals
put empty into tsum
end repeat
delete last char of tvals
return tvals
end fastNormalDeviates

Regards,
Michael

--
Michael J Lew
Senior Lecturer
Department of Pharmacology
email: michaell at unimelb.edu.au
Website: http://www.pharmacology.unimelb.edu.au/statboss
phone: +61 3 8344 7812

> I'm interested an a modest statistics demonstration, but I can't
> figure out how do to the math myself.
>
> I'd like to have a few lines of code that produces a sequence of
> numbers. (whole numbers would probably be okay). I'd like to specify
> the number of numbers generated. Let's call that Z.
>
> I'd like also to specify the desired mean and standard deviation. I'd
> like the function (is this a function??) to work in such a way that
> if Z is large, the set of numbers generated, if graphed as a
> frequency distribution, would be normally distributed, i.e., Gaussian.
>
> If Z is rather small, then the mean and standard deviation of the
> numbers produced will would only approximate the desired mean and
> standard deviation. Different runs would produce different actual
> means and standard deviations.
>
> If Z is very small, like 3 or 4, the numbers will look almost random.

```