示例#1
0
        public static int Poisson(int media)
        {
            double p = GeneradorAleatorio.ObtenerSiguienteAleatorio();
            int    x = 0;
            double a = Math.Exp(-media);

            while (p >= a)
            {
                p *= GeneradorAleatorio.ObtenerSiguienteAleatorio();;
                x += 1;
            }
            return(x);
        }
示例#2
0
        public static List <double> NormalBoxMuller(int media, double desviacion)
        {
            List <double> lista = new List <double>();
            double        n1, n2;
            double        random1 = GeneradorAleatorio.ObtenerSiguienteAleatorio();
            double        random2 = GeneradorAleatorio.ObtenerSiguienteAleatorio();

            n1 = Math.Sqrt(-2 * Math.Log(random1)) * Math.Cos(2 * Math.PI * random2) * desviacion + media;
            n2 = Math.Sqrt(-2 * Math.Log(random1)) * Math.Sin(2 * Math.PI * random2) * desviacion + media;

            lista.Add(Math.Truncate(n1 * 10000) / 10000);
            lista.Add(Math.Truncate(n2 * 10000) / 10000);
            return(lista);
        }
示例#3
0
        //public static double ExponencialNegativaMedia(double media)
        //{
        //    double exponencial = (-media * (Math.Log(1 - GeneradorAleatorio.ObtenerSiguienteAleatorio())));
        //    return (Math.Truncate(exponencial * 10000)) / 10000;
        //}

        public static double ExponencialNegativa(double lambda)
        {
            double exponencial = (-(1 / lambda) * (Math.Log(1 - GeneradorAleatorio.ObtenerSiguienteAleatorio())));

            return((Math.Truncate(exponencial * 10000)) / 10000);
        }
示例#4
0
        public static int UniformeAB(int a, int b)
        {
            double uniformeAB = a + ((b - a) * GeneradorAleatorio.ObtenerSiguienteAleatorio());

            return(Convert.ToInt32(uniformeAB));
        }