DATOS = []
DATOS_FUERA_DE_LIMITE = []
RUTA_RECUENTO = "C:/Users/root/Desktop/SOLEMNE2TALLERPROGRAMACION/[Link]"
LIMITE_INFERIOR = 0
LIMITE_SUPERIOR = 0
media = 0
varianza = 0
suma_diferencias_cuadrado = 0
desviacion_estandar = 0
prob_legal_a_superior = 0
prob_inferior_a_legal = 0
def cargar_datos(ruta):
with open(ruta, "r") as archivo:
for linea in [Link]()[1:]:
linea = [Link]()
if linea:
[Link](int(linea))
return DATOS
def CheckearDatos(LISTA, SinLimite = False):
if SinLimite == True:
for valor in LISTA:
if 100 >= valor:
print(f"{valor} -> en conformidad.")
else:
print(f"{valor} -> no conforme!")
elif SinLimite == False:
for valor in LISTA:
if 0 <= valor <= LIMITE_SUPERIOR:
print(f"{valor} CFU/g -> en conformidad.")
else:
print(f"{valor} CFU/g -> no conforme!")
DATOS_FUERA_DE_LIMITE.append(valor)
def normal(x, mu, sigma):
pi = 3.14
e = 2.72
coeficiente = 1 / (sigma * (2*pi)**0.5)
exponente = -((x-mu)**2/(2*sigma**2))
return coeficiente*(e**exponente)
def probabilidad_entre(a,b, mu, sigma, pasos=1000):
ancho=(b-a)/pasos
suma = 0
for i in range(pasos):
x = a + i * ancho
suma += normal(x, mu, sigma) * ancho
return suma
cargar_datos(RUTA_RECUENTO)
print("-"*70)
CheckearDatos(DATOS, True)
print("-"*70)
def RepararDatos(LISTA):
for valor in LISTA:
if valor == 60000:
indice = [Link](60000)
LISTA[indice] = int(60)
RepararDatos(DATOS)
media = sum(DATOS) / len(DATOS)
def Desv_Estand(LIST):
suma_diferencias_cuadrado = sum((x - media) ** 2 for x in LIST)
varianza = suma_diferencias_cuadrado / len(LIST)
desviacion_estandar_C = varianza ** 0.5
return desviacion_estandar_C
desviacion_estandar = Desv_Estand(DATOS)
LIMITE_INFERIOR = media - (1.96 * desviacion_estandar)/(len(DATOS))**0.5
LIMITE_SUPERIOR = media + (1.96 * desviacion_estandar)/(len(DATOS))**0.5
print("-"*70)
CheckearDatos(DATOS, False)
print("-"*70)
porcentaje_fuera_de_limite = (len(DATOS_FUERA_DE_LIMITE) / len(DATOS)) * 100
print(f"Porcentaje de datos fuera de los límites: {porcentaje_fuera_de_limite}%")
if porcentaje_fuera_de_limite <= 5:
print("Todo está conforme (menos del 5% de datos fuera de límites).")
else:
print("No conforme (más del 5% de datos fuera de límites).")
print("-"*70)
if 100 < LIMITE_SUPERIOR:
prob_legal_a_superior = probabilidad_entre(100, LIMITE_SUPERIOR, media, desviacion_estandar)
print(f"Probabilidad de que los valores de listeria superen el límite legal ({100} CFU/g) pero no superen el límite superior ({
LIMITE_SUPERIOR:.2f}/ CFU/g): {prob_legal_a_superior:.2f}")
print("-"*70)
if LIMITE_INFERIOR < 100:
prob_inferior_a_legal = probabilidad_entre(LIMITE_INFERIOR, 100, media, desviacion_estandar)
print(f"Probabilidad de que los valores de listeria estén entre el límite inferior ({LIMITE_INFERIOR:.2f}CFU/g) y el límite legal ({100} CFU
/g): {prob_inferior_a_legal:.2f}")
print("-"*70)
print(f"Promedio: {media}")
print(f"Desviación estándar: {desviacion_estandar}")
print(f"Límite Superior: {LIMITE_SUPERIOR}")
print(f"Límite Inferior: {LIMITE_INFERIOR}")
print("-"*70)
print("Valores fuera de los límites de conformidad:")
print(DATOS_FUERA_DE_LIMITE)
print("-"*70)