Example #1
0
        /// <summary>
        /// preenche o  _regAleatorios com registros aleatorios com
        /// quantidade igual a 25% da quantidade de dados da base original
        /// </summary>
        private void PreencherAleatorios()
        {
            var rdn = new Random();

            for (int j = 0; j < Convert.ToInt32(Dados.Rows.Count / 4.0); j++)
            {
                DataRow dr = RegAleatorios.NewRow();
                int     max, min;
                for (int i = 0; i < Dados.Columns.Count; i++)
                {
                    //é verificado o tipo da coluna para gerar o dado aleatorio
                    if (Dados.Columns[i].DataType == typeof(long))
                    {
                        min   = Convert.ToInt32(Dados.AsEnumerable().Min(x => x.Field <long>(i)));
                        max   = Convert.ToInt32(Dados.AsEnumerable().Max(x => x.Field <long>(i)));
                        dr[i] = rdn.Next(min, max);
                    }
                    else
                    {
                        min   = Convert.ToInt32(Dados.AsEnumerable().Min(x => x.Field <double>(i)));
                        max   = Convert.ToInt32(Dados.AsEnumerable().Max(x => x.Field <double>(i)));
                        dr[i] = rdn.Next(min, max) + rdn.NextDouble();
                    }
                }
                RegAleatorios.Rows.Add(dr);
            }
        }
Example #2
0
        /// <summary>
        /// soma as distancias minimas encontradas e aplica a
        /// formula de estatistica de hopkins
        /// </summary>
        /// <returns>Hopkins</returns>
        private double CalculoFinal()
        {
            double u = Convert.ToDouble(RegAleatorios.AsEnumerable().Sum(x => x.Field <double>("DistanciaMin")));
            double w = Convert.ToDouble(RegAmostraBanco.AsEnumerable().Sum(x => x.Field <double>("DistanciaMin")));

            return(u / (u + w));
        }