Gaussian pseudo-random numbers -- math issues
Mark Smith
lists at futilism.com
Thu Oct 23 07:16:31 EDT 2008
Correction, I messed up with last night's version, so here's a
correct one.
function polarBoxMuller pLength, pMean, pStd
put 2 ^ 32 -1 into tMax
repeat plength div 2
repeat
put (random(tMax) / tMax) * 2 - 1 into x
put (random(tMax) / tMax) * 2 - 1 into y
put x * x + y * y into r
if r <> 0 and r <= 1 then exit repeat
end repeat
put sqrt( -2 * ln(r) / r) into d
put pMean + (x * d) * pStd & comma after tList
put pMean + (y * d) * pStd & comma after tList
end repeat
return char 1 to -2 of tList
end polarBoxMuller
Best,
Mark
More information about the use-livecode
mailing list