Вот подробное решение задачи и итоговый вывод.
Цель задачи
- Даны FN, FP, TN. Не дан TP, но нас просят определить, что больше: recall или precision.
- Recall R = TP / (TP + FN)
- Precision P = TP / (TP + FP)
- Нужно вывести:
- геcall, если recall > precision
- precision, иначе
Разбор и вывод условия
Предположим, что TP > 0 (обычно так и трактуют задачу). Тогда можно сравнить:
R > P TP/(TP+FN) > TP/(TP+FP)
Так как TP > 0, можно разделить обе стороны на TP (деление допустимо):
1/(TP+FN) > 1/(TP+FP)
У неотрицательных чисел TP+FN и TP+FP это неравенство эквивалентно обратному неравенству:
TP+FP > TP+FN
что упрощается до:
FP > FN
Следовательно, для случая TP > 0 верно:
- recall > precision, если FP > FN
- recall = precision, если FP = FN
- recall < precision, если FP < FN
Важное замечание о случае TP = 0:
- R = 0 / (0 + FN) = 0
- P = 0 / (0 + FP) = 0 (так как FP > 0) Тогда recall не больше precision (они равны нулю). Но в рамках этой задачи с вводом FN, FP, TN положительных и без дополнительной информации обычно предполагают, что TP может быть положительным. Чтобы соответствовать формулировке задачи, используем главное правило FP > FN как критерий.
Итоговый алгоритм
- Прочитав FN, FP, TN:
- Если FP > FN: вывести "геcall"
- Иначе: вывести "precision"
Примеры применения
- Пример 1: FN = 3, FP = 5, TN = 7 -> FP > FN, вывод: геcall
- Пример 2: FN = 4, FP = 4, TN = 6 -> FP = FN, вывод: precision
- Пример 3: FN = 6, FP = 2, TN = 8 -> FP < FN, вывод: precision
Как это применить на практике
- Введите три целых положительных числа FN, FP, TN в одну строку.
- Программа сравнит FP и FN и выведет одну из двух строк: геcall или precision.
Если нужны дополнительные примеры или короткий код на каком-то языке для автоматизации, скажи язык, и приведу минимальный рабочий фрагмент.