13 lines
841 B
Python
13 lines
841 B
Python
|
|
"""Временная составляющая оценки по занятой методике.
|
|||
|
|
|
|||
|
|
Скорость даёт непрерывный вклад, а превышение норматива дополнительно
|
|||
|
|
отмечается как E3. Линейный множитель 1 − t/(2T) ограничен диапазоном 0–1:
|
|||
|
|
нулевое время даёт полный вклад, два норматива и более — нулевой.
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
|
|||
|
|
def time_credit(elapsed_ms: int | None, limit_ms: int) -> float:
|
|||
|
|
"""Доля веса временной метрики, 0–1; отсутствие доказанного времени — 0."""
|
|||
|
|
if elapsed_ms is None or elapsed_ms < 0 or limit_ms <= 0:
|
|||
|
|
return 0.0
|
|||
|
|
return round(max(0.0, min(1.0, 1.0 - elapsed_ms / (2 * limit_ms))), 4)
|