Пример #1
0
 public DistribuicaoBinomialEntity Build(DistribuicaoBinomialEntity entidade)
 {
     if (entidade.InputSemDefeito == false)
     {
         entidade.P = (entidade.N - entidade.SucessoInput) / entidade.N;
     }
     else
     {
         entidade.P = entidade.SucessoInput / entidade.N;
     }
     entidade.Q = 1 - entidade.P;
     entidade.K = RetornaK(entidade.KInput, entidade.TipoEntrada, entidade.N);
     entidade.KProbabilidade = CalculoK(entidade);
     entidade.Media          = Media(entidade);
     entidade.DesvioPadrao   = DesvioPadrao(entidade);
     return(entidade);
 }
        public void Input()
        {
            var elemento = new DistribuicaoBinomialEntity
            {
                N           = 20,
                KInput      = 18,
                TipoEntrada = 2
            };
            var build = new DistribuicaoBinomialApp().Build(elemento);

            var elemento2 = new DistribuicaoBinomialEntity
            {
                N           = 20,
                KInput      = 15,
                TipoEntrada = 0
            };
            var build2 = new DistribuicaoBinomialApp().Build(elemento2);
        }
Пример #3
0
 public double DesvioPadrao(DistribuicaoBinomialEntity entidade)
 {
     return(Math.Round(Math.Sqrt((double)(entidade.N * entidade.P * entidade.Q)), 2));
 }
Пример #4
0
 public decimal Media(DistribuicaoBinomialEntity entidade)
 {
     return(Math.Round(entidade.N * entidade.P, 2));
 }
Пример #5
0
        public List <Tuple <int, decimal, DistribuicaoBinomialCalculoEntity> > CalculoK(DistribuicaoBinomialEntity entidade)
        {
            var listaCalculosK = new List <Tuple <int, decimal, DistribuicaoBinomialCalculoEntity> >();

            foreach (var K in entidade.K)
            {
                /* N[fatorial] - K[fatorial] * (N - K [Fatorial]) */
                var calculobase  = MathCoreApp.Fatorial(entidade.N) / (MathCoreApp.Fatorial(K) * MathCoreApp.Fatorial(entidade.N - K));
                var calculoA     = Math.Pow((double)entidade.P, K);
                var calculoB     = Math.Pow((double)entidade.Q, (double)(entidade.N - K));
                var calculoFinal = (decimal)(calculobase * calculoA * calculoB) * 100;

                var calculo = new DistribuicaoBinomialCalculoEntity()
                {
                    A = $"{entidade.N}",
                    B = $"{K}",
                    C = $"{entidade.N - K}",

                    D = $"{(double)entidade.P}",
                    E = $"{(double)entidade.Q}",
                };

                listaCalculosK.Add(new Tuple <int, decimal, DistribuicaoBinomialCalculoEntity>((int)K, Math.Round(calculoFinal, 2), calculo));
            }
            return(listaCalculosK);
        }
Пример #6
0
 public ActionResult Index(DistribuicaoBinomialEntity distribuicao, FormCollection form)
 {
     return(View(new DistribuicaoBinomialApp().Build(distribuicao)));
 }