Estadísticas del problema: cómo se calcula cada métrica — MOJ docs

Estadísticas del problema: cómo se calcula cada métrica

Nota de traducción. Este manual es una traducción del original en portugués. Las herramientas de línea de comandos (moj, moj-contest, moj-comp) muestran sus mensajes en portugués, y los ejemplos de comandos son idénticos al original.

Este documento explica, sección por sección, cómo la página Estadísticas del problema del Entrenamiento libre (/treino/problema/stats/?id=<problema>) calcula lo que muestra, incluidas las decisiones estadísticas y las limitaciones honestas de cada número. La fuente de verdad es el endpoint GET /treino/problem-stats (contrato completo en API.md); esta página describe la semántica.

De dónde vienen los datos

Cada cuenta del entrenamiento guarda su propio historial de envíos (1 línea por envío: problema, lenguaje, veredicto y hora en epoch). La estadística de un problema es la agregación de todas las líneas de todos los usuarios para ese problema, solo del Entrenamiento libre: los envíos hechos en competencias de grupos de clase no entran.

Resumen

Métrica Cálculo
envíos total de líneas del historial del problema
intentaron usuarios distintos con ≥1 envío
resolvieron usuarios distintos con ≥1 envío aceptado
lo resuelven (por usuario) resolvieron ÷ intentaron: la tasa por usuario
tasa por envío envíos aceptados ÷ envíos totales. Mide cuánto se falla al intentar; no define la dificultad
envíos / usuario envíos ÷ intentaron
dificultad etiqueta según la tasa por usuario: ≥90% muy fácil · ≥70% fácil · ≥50% medio · <50% difícil · sin usuarios que lo intentaran = nuevo
dirt (envíos de quienes resolvieron hasta el 1.er AC − ACs) ÷ (esos envíos). Es la métrica del resolver de ICPC, la misma de las estadísticas de la competencia. Alto = el problema castiga los errores.

La dificultad tiene una sola fuente en el sistema (lib/difficulty.sh en el servidor, shared/difficulty.js en la web). La búsqueda, la sugerencia, el perfil, el sorteo de la competencia y esta página leen la misma clave. Antes, esta página etiquetaba según la tasa por envío, y el mismo problema salía "fácil" en la búsqueda y "difícil" aquí (issue #30). La tasa por envío sigue en la página como número, con el nombre correcto.

Percentil de dificultad frente al acervo

La tarjeta "X% del acervo es más fácil que este" compara la tasa de éxito por usuario (resolvieron ÷ intentaron) de este problema con la de todos los problemas públicos del entrenamiento (la misma base de la lista de problemas).

Datos

Línea de tiempo

Calendario de actividad

Cómo lo resuelven

Tiempo de ejecución (envíos aceptados)


Contrato del endpoint (campos y formatos): API.md, ruta /treino/problem-stats. La presentación de los veredictos sigue la política central de la plataforma (fuente única lib/verdict.sh: los veredictos nunca se traducen).