public override float Calcular() { Valores = Valores.ToList().OrderBy(x => x).ToList(); string ValoresCSV = String.Join(",", Valores); Passos.WriteLineAsyncCounter($"{Titulo("Ordene os dados (K):")} {GerarTabelaDeFrequencia()}"); NumeroDeElementos = Valores.Count; ValorMinimo = CalcularValorMinimo(Valores); ValorMaximo = CalcularValorMaximo(Valores); Amplitude = CalcularAmplitudeA(ValorMinimo, ValorMaximo); if (Simples) { QuantidadeIntervalos = ValoresDistintos.Count(); } else { QuantidadeIntervalos = CalcularQuantidadeIntervalosK(NumeroDeElementos); } Intervalo = CalcularTamanhoIntervaloH(Amplitude, QuantidadeIntervalos); CalcularTodosOsIntervalos(); Moda.Calcular(); //Passos.Append(Moda.Passos.ToString()); Mediana.Calcular(); //Passos.Append(Mediana.Passos.ToString()); DesvioPadrao.Calcular(); //Passos.Append(DesvioPadrao.Passos.ToString()); Variancia.Calcular(); //Passos.Append(Variancia.Passos.ToString()); Media.Calcular(); //Passos.Append(Media.Passos.ToString()); CoeficienteVariacao.Calcular(); Passos.Close(); return(0f); }
public TabelaDistribuicao(List <float> Valores) : base() { intervalos = new List <string>(); xi = new List <float>(); fi = new List <float>(); Fi = new List <float>(); fr = new List <float>(); Fr = new List <float>(); Moda = new Moda(Valores); Mediana = new Mediana(Valores); DesvioPadrao = new DesvioPadrao(Valores); Variancia = new Variancia(Valores); Media = new Media(Valores); CoeficienteVariacao = new CoeficienteVariacao(Valores); ValoresDistintos = new List <KeyValuePair <float, int> >(); this.Valores = Valores; var ValoresAgrupados = from s in Valores group s by s into grp select new { valor = grp.Key, contagem = grp.Count() }; foreach (var k in ValoresAgrupados.OrderBy(x => x.valor)) { ValoresDistintos.Add(new KeyValuePair <float, int>(k.valor, k.contagem)); } if (ValoresDistintos.Count <= 10) { Simples = true; } else { Simples = false; } }