Thread-safe normal random number generator in F#
问题 Needing a random number generator that returns a sample from a normal (Gaussian) distribution, I've ported to F# a portion of John D. Cook's C# generator: let mutable m_w = 521288629u let mutable m_z = 362436069u let private getUint () = m_z <- 36969u * (m_z &&& 65535u) + (m_z >>> 16) m_w <- 18000u * (m_w &&& 65535u) + (m_w >>> 16) (m_z <<< 16) + m_w let private setSeed () = let dt = System.DateTime.Now let x = dt.ToFileTime () m_w <- uint32 (x >>> 16) m_z <- uint32 (x % 4294967296L) let