public Dictionary <double, double> ObtenerDensidadInversa(int cantidad) { Dictionary <double, double> densidades = new Dictionary <double, double>(); var rand = new Random(); double[] arr = new double[cantidad]; for (int i = 0; i < cantidad; i++) { arr[i] = rand.NextDouble(); } arr = arr.Distinct().ToArray(); try { if (DistribucionContinua != null) { foreach (var item in arr) { densidades.Add(item, DistribucionContinua.QuantileDensityFunction(item)); } } else { foreach (var item in arr) { densidades.Add(item, DistribucionDiscreta.QuantileDensityFunction(item)); } } return(densidades.OrderBy(x => x.Key).ToDictionary(x => x.Key, y => y.Value)); } catch (Exception) { FuncionDensidadProbabilidad aux = FactoryFuncionDensidad.Instancia(FuncionDensidad.LOG_LOGISTICA, arr); return(aux.ObtenerDensidadInversa(cantidad)); } }
public Double getYforX(double x) { try { if (DistribucionContinua != null) { return(DistribucionContinua.QuantileDensityFunction(x)); } else { return(DistribucionDiscreta.QuantileDensityFunction(x)); } } catch (Exception) { return(-1); } }