18. Estimación de tiempo
Crea una función que estime el tiempo necesario para completar una tarea basándose en la cantidad de trabajo restante y la "velocidad" actual.
La función debe aceptar trabajo_total, trabajo_completado y tiempo_transcurrido_en_horas (o la unidad que prefieras). Debe devolver el tiempo restante estimado en la misma unidad. Considera la velocidad como el trabajo completado por unidad de tiempo.
def estimar_tiempo_restante(trabajo_total: float, trabajo_completado: float, tiempo_transcurrido: float) -> float:
# Tu código aquí
pass
estimar_tiempo_restante(100, 25, 2)
# 6.0 (Si 25 unidades en 2 horas, entonces 75 unidades restantes / (25/2) = 6 horas)
estimar_tiempo_restante(100, 50, 10)
# 10.0
estimar_tiempo_restante(100, 100, 5)
# 0.0
estimar_tiempo_restante(100, 0, 0)
# Infinity o un valor que indique indeterminación (división por cero)
Ratoncito
Implementa la estimación de tiempo para casos donde trabajo_completado es mayor que 0 y tiempo_transcurrido es mayor que 0.
Dragón
Maneja los casos extremos:
-
Si no se ha completado trabajo (
trabajo_completado==0) o no ha transcurrido tiempo (tiempo_transcurrido==0), ¿cómo se estima? (Puedes devolverfloat(’inf’)para "infinito",None, o un mensaje de error). -
Asegúrate de que
trabajo_completadono excedatrabajo_total. -
Considera la posibilidad de que la velocidad cambie con el tiempo (esto sería un reto mucho mayor y quizás implique un modelo más complejo, pero podrías mencionarlo como una extensión).
Este trabajo está bajo una licencia Attribution-NonCommercial-NoDerivatives 4.0 International.
Apóyame en Ko-fi