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)
|