Пример #1
0
 /// <summary>
 /// Returns a bernoulli distributed random number.
 /// </summary>
 /// <returns>A bernoulli distributed 32-bit signed integer.</returns>
 public int Next()
 {
     if (Generator.NextDouble() < _probability)
     {
         return(1);
     }
     else
     {
         return(0);
     }
 }
Пример #2
0
 /// <summary>
 /// Returns a bernoulli distributed floating point random number.
 /// </summary>
 /// <returns>A bernoulli distributed double-precision floating point number.</returns>
 public override double NextDouble()
 {
     if (Generator.NextDouble() < _probability)
     {
         return(1.0);
     }
     else
     {
         return(0.0);
     }
 }
Пример #3
0
        /// <summary>
        /// Returns a triangular distributed floating point random number.
        /// </summary>
        /// <returns>A triangular distributed double-precision floating point number.</returns>
        public override double NextDouble()
        {
            double genNum = Generator.NextDouble();

            if (genNum <= helper1 / helper2)
            {
                return(alpha + Math.Sqrt(genNum) * helper3);
            }
            else
            {
                return(beta - Math.Sqrt(genNum * helper2 - helper1) * helper4);
            }
        }
Пример #4
0
 /// <summary>
 /// Returns a exponential distributed floating point random number.
 /// </summary>
 /// <returns>A exponential distributed double-precision floating point number.</returns>
 public override double NextDouble()
 {
     // Subtract random number from 1.0 to avoid Math.Log(0.0)
     return(helper1 * Math.Log(1.0 - Generator.NextDouble()));
 }
Пример #5
0
 /// <summary>
 /// Returns a power distributed floating point random number.
 /// </summary>
 /// <returns>A power distributed double-precision floating point number.</returns>
 public override double NextDouble()
 {
     return(Math.Pow(Generator.NextDouble(), helper1) / beta);
 }
Пример #6
0
 /// <summary>
 /// Returns a cauchy distributed floating point random number.
 /// </summary>
 /// <returns>A cauchy distributed double-precision floating point number.</returns>
 public override double NextDouble()
 {
     return(alpha + gamma * Math.Tan(Math.PI * (Generator.NextDouble() - 0.5)));
 }
Пример #7
0
 /// <summary>
 /// Returns a pareto distributed floating point random number.
 /// </summary>
 /// <returns>A pareto distributed double-precision floating point number.</returns>
 public override double NextDouble()
 {
     return(alpha / Math.Pow(1.0 - Generator.NextDouble(), helper1));
 }
Пример #8
0
 /// <summary>
 /// Returns a Fisher-Tippett distributed floating point random number.
 /// </summary>
 /// <returns>A Fisher-Tippett distributed double-precision floating point number.</returns>
 public override double NextDouble()
 {
     return(mu - alpha * Math.Log(-Math.Log(1.0 - Generator.NextDouble())));
 }
Пример #9
0
        /// <summary>
        /// Returns a laplace distributed floating point random number.
        /// </summary>
        /// <returns>A laplace distributed double-precision floating point number.</returns>
        public override double NextDouble()
        {
            double rand = 0.5 - Generator.NextDouble();

            return(mu - alpha * Math.Sign(rand) * Math.Log(2.0 * Math.Abs(rand)));
        }
Пример #10
0
 /// <summary>
 /// Returns a uniformly distributed floating point random number.
 /// </summary>
 /// <returns>A uniformly distributed double-precision floating point number.</returns>
 public override double NextDouble()
 {
     return(alpha + Generator.NextDouble() * helper1);
 }