Uniform random numbers generator in the range of [0, 1).

The random number generator generates uniformly distributed numbers in the range of [0, 1) - greater or equal to 0.0 and less than 1.0.

At this point the generator is based on the internal .NET generator, but may be rewritten to use faster generation algorithm.

Sample usage:

// create instance of random generator IRandomNumberGenerator generator = new UniformOneGenerator( ); // generate random number float randomNumber = generator.Next( );
Inheritance: IRandomNumberGenerator
示例#1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="UniformGenerator"/> class.
        /// </summary>
        ///
        /// <param name="range">Random numbers range.</param>
        /// <param name="seed">Seed value to initialize random numbers generator.</param>
        ///
        public UniformGenerator(Range range, int seed)
        {
            this.rand = new UniformOneGenerator(seed);

            this.min    = range.Min;
            this.length = range.Length;
        }
示例#2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="UniformGenerator"/> class.
        /// </summary>
        ///
        /// <param name="range">Random numbers range.</param>
        /// <param name="seed">Seed value to initialize random numbers generator.</param>
        ///
        public UniformGenerator(Range range, int seed)
        {
            rand = new UniformOneGenerator(seed);

            min    = range.Min;
            length = range.Length;
        }
示例#3
0
 public ExponentialGenerator(float rate, int seed)
 {
     if (rate <= 0f)
     {
         throw new ArgumentException("Rate value should be greater than zero.");
     }
     rand      = new UniformOneGenerator(seed);
     this.rate = rate;
 }
示例#4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ExponentialGenerator"/> class.
        /// </summary>
        /// 
        /// <param name="rate">Rate value (inverse mean).</param>
        /// <param name="seed">Seed value to initialize random numbers generator.</param>
        /// 
        /// <exception cref="ArgumentException">Rate value should be greater than zero.</exception>
        /// 
        public ExponentialGenerator(double rate, int seed)
        {
            // check rate value
            if (rate <= 0)
                throw new ArgumentException("Rate value should be greater than zero.");

            rand = new UniformOneGenerator(seed);
            this.rate = rate;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ExponentialGenerator"/> class.
        /// </summary>
        ///
        /// <param name="rate">Rate value (inverse mean).</param>
        /// <param name="seed">Seed value to initialize random numbers generator.</param>
        ///
        /// <exception cref="ArgumentException">Rate value should be greater than zero.</exception>
        ///
        public ExponentialGenerator(double rate, int seed)
        {
            // check rate value
            if (rate <= 0)
            {
                throw new ArgumentException("Rate value should be greater than zero.");
            }

            this.rand = new UniformOneGenerator(seed);
            this.rate = rate;
        }
示例#6
0
 /// <summary>
 /// Set seed of the random numbers generator.
 /// </summary>
 ///
 /// <param name="seed">Seed value.</param>
 ///
 /// <remarks>Resets random numbers generator initializing it with
 /// specified seed value.</remarks>
 ///
 public void SetSeed(int seed)
 {
     this.rand = new UniformOneGenerator(seed);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="StandardGenerator"/> class.
 /// </summary>
 /// 
 /// <param name="seed">Seed value to initialize random numbers generator.</param>
 /// 
 public StandardGenerator( int seed )
 {
     rand = new UniformOneGenerator( seed );
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="StandardGenerator"/> class.
 /// </summary>
 /// 
 public StandardGenerator( )
 {
     rand = new UniformOneGenerator( );
 }
 /// <summary>
 /// Set seed of the random numbers generator.
 /// </summary>
 /// 
 /// <param name="seed">Seed value.</param>
 /// 
 /// <remarks>Resets random numbers generator initializing it with
 /// specified seed value.</remarks>
 /// 
 public void SetSeed( int seed )
 {
     rand = new UniformOneGenerator( seed );
     useSecond = false;
 }
示例#10
0
        /// <summary>
        /// Initializes a new instance of the <see cref="UniformGenerator"/> class.
        /// </summary>
        /// 
        /// <param name="range">Random numbers range.</param>
        /// <param name="seed">Seed value to initialize random numbers generator.</param>
        /// 
        public UniformGenerator( DoubleRange range, int seed )
        {
            rand = new UniformOneGenerator( seed );

            min     = range.Min;
            length  = range.Length;
        }
示例#11
0
 /// <summary>
 /// Set seed of the random numbers generator.
 /// </summary>
 /// 
 /// <param name="seed">Seed value.</param>
 /// 
 /// <remarks>Resets random numbers generator initializing it with
 /// specified seed value.</remarks>
 /// 
 public void SetSeed( int seed )
 {
     rand = new UniformOneGenerator( seed );
 }
示例#12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="StandardGenerator"/> class.
 /// </summary>
 ///
 /// <param name="seed">Seed value to initialize random numbers generator.</param>
 ///
 public StandardGenerator(int seed)
 {
     rand = new UniformOneGenerator(seed);
 }
示例#13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="StandardGenerator"/> class.
 /// </summary>
 ///
 public StandardGenerator( )
 {
     rand = new UniformOneGenerator( );
 }
示例#14
0
 /// <summary>
 /// Set seed of the random numbers generator.
 /// </summary>
 ///
 /// <param name="seed">Seed value.</param>
 ///
 /// <remarks>Resets random numbers generator initializing it with
 /// specified seed value.</remarks>
 ///
 public void SetSeed(int seed)
 {
     rand      = new UniformOneGenerator(seed);
     useSecond = false;
 }