Dear Daniel, the GNU Scientific Library (GSL) includes pseudo random number generation methods. There is a Ruby binding for this library (Ruby-GSL). Best regards, Axel

on 2005-11-30 11:33

on 2005-11-30 14:51

On 11/30/05, removed_email_address@domain.invalid <removed_email_address@domain.invalid> wrote: > the GNU Scientific Library (GSL) includes pseudo random number generation > methods. > There is a Ruby binding for this library (Ruby-GSL). Just remember that the GSL is under the GNU GPL, which makes it inappropriate for some applications. -austin

on 2005-11-30 18:02

On Nov 30, 2005, at 1:28 AM, removed_email_address@domain.invalid wrote: > the GNU Scientific Library (GSL) includes pseudo random number > generation > methods. > There is a Ruby binding for this library (Ruby-GSL). Try this, if you don't need high performance... def rand_normal_float(mean = 0.0, variance = 1.0) # sum 12 random numbers uniformly distributed in [0,1] sum = 0.0 12.times { sum += Kernel.rand } # adjust for mean and variance (variance.to_f * (sum - 6.0)) + mean.to_f end --Steve

on 2005-12-06 00:12

Hi! At Thu, 1 Dec 2005 01:01:39 +0900, Stephen W. wrote: > Try this, if you don't need high performance... > > def rand_normal_float(mean = 0.0, variance = 1.0) > # sum 12 random numbers uniformly distributed in [0,1] > sum = 0.0 > 12.times { sum += Kernel.rand } > # adjust for mean and variance > (variance.to_f * (sum - 6.0)) + mean.to_f > end My mathematical intuition says that the Gaussian distribution is achieved as the limit of the above replacing 12 by N (and 6 by N/2) and then computing the limit for N versus infinity. Without knowing the quality of the approximation of using 12 in place of infinity the approximation is of no practical value. Besides that summing up pseudo-random numbers may decrease their randomness. Josef 'Jupp' Schugt

on 2005-12-06 16:34

Take a look at this website. Shouldn't be hard at all to implement in ruby. http://www.taygeta.com/random/gaussian.html _Kevin