Exemple #1
0
        public void GenerarNumerosC()
        {
            //Congruencial Mixto : Xn = (A * Xn-1 + C ) Mod M
            LimpiarTablas();

            var c       = int.Parse(txt_cC.Text);
            var a       = int.Parse(txt_aC.Text);
            var m       = int.Parse(txt_mC.Text);
            var semilla = double.Parse(txt_semillaC.Text);

            _generadorAleatorio = new CongruencialMixto(semilla, a, c, m);

            var tamañoMuestra      = int.Parse(txt_cant_nroC.Text);
            var cantidadIntervalos = int.Parse(txt_IntC.Text);
            var alfa = double.Parse(txt_chicierto.Text);

            var distribucion = new DistribucionUniforme(0, 1, _generadorAleatorio);

            _gestor = new GestorEstadistico(distribucion, tamañoMuestra, cantidadIntervalos, alfa);

            foreach (var valor in _gestor.Valores)
            {
                _ord++;
                dataGridView1.Rows.Add(_ord, valor);
            }

            AgregarValoresTabla();
            CargarHistograma();
        }
Exemple #2
0
        public void GenerarNumerosA()
        {
            LimpiarTablas();

            var a       = int.Parse(txt_aA.Text);
            var m       = int.Parse(txt_mA.Text);
            var semilla = double.Parse(txt_semillaA.Text);

            //Congruencial Multiplicativo : Xn = (A * Xn-1 ) Mod M
            if (radioButton2.Checked)
            {
                _generadorAleatorio = new CongruencialMultiplicativo(semilla, a, m);
            }

            //Congruencial Mixto : Xn = (A * Xn-1 + C ) Mod M
            else if (radioButton1.Checked)
            {
                var c = int.Parse(txt_cA.Text);
                _generadorAleatorio = new CongruencialMixto(semilla, a, c, m);
            }

            for (var i = 0; i < TamañoMuestra; i++)
            {
                var aleatorio = _generadorAleatorio.Generar(Cifras);
                _ord++;
                dataGridView1.Rows.Add(_ord, aleatorio);
            }
        }
 public IGeneradorNumerosAleatorios InjectGeneradorNumerosAleatorios()
 {
     if (this.generadorNumerosAleatorios == null)
     {
         //this.generadorNumerosAleatorios = new GeneradorNumerosAleatoriosUniformeEjemplo();
         this.generadorNumerosAleatorios = new GeneradorNumerosAleatoriosUniforme();
     }
     return(this.generadorNumerosAleatorios);
 }
 public DistribucionExponencialNegativa(double lambda, IGeneradorNumerosAleatorios generador)
 {
     if (lambda <= 0)
     {
         throw new NotSupportedException("Lambda debe ser un número positivo");
     }
     Lambda    = lambda;
     Generador = generador;
 }
 public DistribucionExponencialNegativa(double lambda)
 {
     if (lambda <= 0)
     {
         throw new NotSupportedException("Lambda debe ser un número positivo");
     }
     Lambda    = lambda;
     Generador = new GeneradorDelSistema();
 }
 public DistribucionNormal(double media, double varianza, IGeneradorNumerosAleatorios generador)
 {
     if (varianza < 0)
     {
         throw new NotSupportedException("La varianza no puede ser negativa");
     }
     Media     = media;
     Varianza  = varianza;
     Generador = generador;
 }
 public DistribucionNormal(double media, double varianza)
 {
     if (varianza < 0)
     {
         throw new NotSupportedException("La varianza no puede ser negativa");
     }
     Media     = media;
     Varianza  = varianza;
     Generador = new GeneradorDelSistema();
 }
 public DistribucionUniforme(double a, double b, IGeneradorNumerosAleatorios generador)
 {
     if (b <= a)
     {
         throw new NotSupportedException("A debe ser menor que B");
     }
     A         = a;
     B         = b;
     Generador = generador;
 }
 public DistribucionUniforme(double a, double b)
 {
     if (b <= a)
     {
         throw new NotSupportedException("A debe ser menor que B");
     }
     A         = a;
     B         = b;
     Generador = new GeneradorDelSistema();
 }
 public void AsignarGenerador(IGeneradorNumerosAleatorios generador)
 {
     Generador = generador;
 }
 public GeneradorPartidasDistribucionExponencial(decimal media, IGeneradorNumerosAleatorios generadorNumerosAleatorios)
 {
     this.media = media;
     this.generadorNumerosAleatorios = generadorNumerosAleatorios;
 }
Exemple #12
0
        public void GenerarNumeros()
        {
            LimpiarTablas();

            if (radioButton3.Checked)
            {
                _generadorAleatorio = new GeneradorDelSistema();
            }

            else
            {
                var a       = int.Parse(txt_aA.Text);
                var m       = int.Parse(txt_mA.Text);
                var semilla = double.Parse(txt_semillaA.Text);

                //Congruencial Multiplicativo : Xn = (A * Xn-1 ) Mod M
                if (radioButton2.Checked)
                {
                    _generadorAleatorio = new CongruencialMultiplicativo(semilla, a, m);
                }

                //Congruencial Mixto : Xn = (A * Xn-1 + C ) Mod M
                else if (radioButton1.Checked)
                {
                    var c = int.Parse(txt_cA.Text);
                    _generadorAleatorio = new CongruencialMixto(semilla, a, c, m);
                }
            }

            if (rad_uniforme.Checked)
            {
                var a = double.Parse(txt_a.Text);
                var b = double.Parse(txt_b.Text);

                _distribucion = new DistribucionUniforme(a, b, _generadorAleatorio);
            }

            if (rad_normal.Checked)
            {
                var media    = double.Parse(txt_media.Text);
                var varianza = double.Parse(txt_varianza.Text);

                _distribucion = new DistribucionNormal(media, varianza, _generadorAleatorio);
            }

            if (rad_exponencial.Checked)
            {
                var lambda = double.Parse(txt_lambda.Text);

                _distribucion = new DistribucionExponencialNegativa(lambda, _generadorAleatorio);
            }

            var tamañoMuestra      = int.Parse(txt_cant_nroC.Text);
            var cantidadIntervalos = int.Parse(txt_IntC.Text);
            var alfa = double.Parse(txt_chicierto.Text);

            try
            {
                _gestor = new GestorEstadistico(_distribucion, tamañoMuestra, cantidadIntervalos, alfa);
            }
            catch (Exception)
            {
                var grados = int.Parse(txt_IntC.Text) - _distribucion.CantidadParametros() - 1;

                MessageBox.Show(grados <= 0
                    ? @"Grados de libertad insuficientes, utilice más intervalos"
                    : @"Falla la prueba de Chi Cuadrado porque las frecuencias esperadas tienden a cero, utilice menos intervalos");

                txt_mA.Focus();
                return;
            }

            for (var i = 0; i < tamañoMuestra; i++)
            {
                var valor = _gestor.Valores[i];

                dataGridView1.Rows.Add(i + 1, valor);
            }

            AgregarValoresTabla();
            CargarHistograma();
        }
Exemple #13
0
        public void GenerarNumeros()
        {
            dgvResultadosDistribucion.Rows.Clear();

            if (rbGSistema.Checked)
            {
                IGeneradorAleatorio = new GeneradorDelSistema();
            }

            else
            {
                var a       = int.Parse(txtMultiplicativoA.Text);
                var m       = int.Parse(txtDivisorM.Text);
                var semilla = float.Parse(txtSemillaA.Text);

                //Congruencial Multiplicativo : Xn = (A * Xn-1 ) Mod M
                if (rbGCMultiplicativo.Checked)
                {
                    IGeneradorAleatorio = new CongruencialMultiplicativo(semilla, a, m);
                }

                //Congruencial Mixto : Xn = (A * Xn-1 + C ) Mod M
                else if (rbGCMixto.Checked)
                {
                    var c = int.Parse(txtSumatorioC.Text);
                    IGeneradorAleatorio = new CongruencialMixto(semilla, a, c, m);
                }
            }

            if (rbDUniforme.Checked)
            {
                var a = float.Parse(txtMargenAU.Text);
                var b = float.Parse(txtMargenBU.Text);

                IDistribucion = new DistribucionUniforme(a, b, IGeneradorAleatorio);
            }

            if (rbDNormal.Checked)
            {
                var media    = float.Parse(txtMedia.Text);
                var varianza = float.Parse(txtVarianza.Text);

                IDistribucion = new DistribucionNormal(media, varianza, IGeneradorAleatorio);
            }

            if (rbDExponencial.Checked)
            {
                var lambda = float.Parse(txtLambda.Text);

                IDistribucion = new DistribucionExponencialNegativa(lambda, IGeneradorAleatorio);
            }
            //}

            //}

            var tamañoMuestra      = string.IsNullOrEmpty(txtCantNro.Text) ? 100 : int.Parse(txtCantNro.Text);
            var cantidadIntervalos = string.IsNullOrEmpty(txtIntervalos.Text) ? 100 : int.Parse(txtIntervalos.Text);

            var alfa = (float)0.5;

            try
            {
                gestor = new GestorEstadistico(IDistribucion, tamañoMuestra, cantidadIntervalos, alfa);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                txtDivisorM.Focus();
                return;
            }
        }
 public GeneradorArribosDistribucionExponencial(IGeneradorNumerosAleatorios generadorNumerosAleatorios)
 {
     this.generadorNumerosAleatorios = generadorNumerosAleatorios;
 }