Exemplo n.º 1
0
        /*
         * minValue: es el minimo de personas que llegan al andén
         * maxValue: es el máximo de personas que llegan al andén
         * lambda: es el deltaTiempo, intervalo de tiempo (en horas)
         *
         */
        public static int Gamma(int minValue, int maxValue, double lambda)
        {
            double r2, m, x, y, fx, k;

            if ((minValue >= maxValue) || (minValue < 0) || (maxValue < 0))
            {
                throw new System.ArgumentException("Valores incorrectos");
            }

            k = 9.0;

            GammaDistribution f = new GammaDistribution(k, lambda);

            m = (1 / lambda) * (k - 1);

            do
            {
                x = Rand();

                r2 = Rand();

                y = m * r2;

                fx = f.ProbabilityDensity(x);

            } while (y < fx);

            return Convert.ToInt32(minValue + (maxValue - minValue) * x);
        }
Exemplo n.º 2
0
 /// <inheritdoc/>
 public override double ProbabilityDensity(double x)
 {
     if (x < 0.0)
     {
         return(0.0);
     }
     else
     {
         return(x * gamma.ProbabilityDensity(x * x / 2.0));
     }
 }
Exemplo n.º 3
0
 /// <inheritdoc />
 public override double ProbabilityDensity(double x)
 {
     return(gamma.ProbabilityDensity(x / 2.0) / 2.0);
 }