Gaussian pseudo-random numbers -- math issues
michaell at unimelb.edu.au
Wed Oct 22 20:14:54 EDT 2008
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
add tmean to tdevs --to obtain the desired mean
combine tdevs with return
put tdevs into fld "outputFld"
function fastNormalDeviates howmany
--returns random deviates from a normal distribution mean 0, stdev 1.
--Fast algorithm simply averages many deviates from uniform
--Many times faster than Gasdev-based algorithms.
--Values returned are return-delimited.
if howmany is empty then put 1 into howmany
add random(10000) to tsum
put (5000.5-(tsum/20))/645 & return after tvals
put empty into tsum
delete last char of tvals
Michael J Lew
Department of Pharmacology
email: michaell at unimelb.edu.au
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 numbers 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.
More information about the Use-livecode