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 devolver float(’inf’) para "infinito", None, o un mensaje de error).

  • Asegúrate de que trabajo_completado no exceda trabajo_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).

This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.

Will you buy me a coffee?

Visitors in real time

You are alone: 🐱