Esempio n. 1
0
        //Para set
        public void Ordenar()
        {
            LinkedList <CollectionValue>  tmp = new LinkedList <CollectionValue>();
            IEnumerable <CollectionValue> ordered;

            if (Tipo.Valor.IsString() || Tipo.Valor.IsDate() || Tipo.Valor.IsTime())
            {
                ordered = Valores.OrderBy(p => p.Valor.ToString()).AsEnumerable();
            }
            else if (Tipo.Valor.IsInt())
            {
                ordered = Valores.OrderBy(p => (int)p.Valor).AsEnumerable();
            }
            else if (Tipo.Valor.IsDouble())
            {
                ordered = Valores.OrderBy(p => (double)p.Valor).AsEnumerable();
            }
            else
            {
                ordered = null;
            }

            if (ordered != null)
            {
                int contador = 0;

                foreach (CollectionValue value in ordered)
                {
                    value.Clave = (contador++).ToString();
                    tmp.AddLast(value);
                }
                Valores = tmp;
            }
        }
Esempio n. 2
0
        private void GenerarTablaRandom()
        {
            if (Valores.Sum(v => v.ProbabilidadAsociada) > 1)
            {
                throw new NotSupportedException("La suma de las probabilidades no puede ser mayor a 1");
            }

            Valores         = Valores.OrderBy(v => v.Valor).ToList();
            RandomAsociados = new List <double> {
                0
            };

            for (var i = 1; i < Valores.Count; i++)
            {
                RandomAsociados.Add(RandomAsociados[i - 1] + Valores[i - 1].ProbabilidadAsociada);
            }
        }
Esempio n. 3
0
        //Genera la tabla con los intervalos
        private void GenerarTabla()
        {   //ordena las p(x)
            Valores = Valores.OrderBy(v => v.ValorAsociado).ToList();

            intervaloHasta = new List <double>();

            //setea los intervalos
            for (var i = 0; i < Valores.Count; i++)
            {
                if (intervaloHasta.Count == 0)
                {
                    intervaloHasta.Insert(i, 0 + Valores[i].ProbabilidadAsociada - 0.01);
                }
                else
                {
                    intervaloHasta.Insert(i, (intervaloHasta[i - 1] + Valores[i - 1].ProbabilidadAsociada));
                }
            }
        }