Код Middle RAG спрашивают часто обновлено
Reciprocal rank fusion
Условие
Напишите rrf(rankings, k=60): rankings это список выдач, каждая выдача список id документов от лучшего к худшему. Оценка документа: сумма 1 / (k + rank) по выдачам, где он есть (rank с единицы). Верните id по убыванию оценки, при равенстве по возрастанию id (строки).
Примеры
rrf([["a", "b", "c"], ["b", "c", "a"]]) // ["b", "a", "c"]
rrf([["a", "b"], ["c", "d"]]) // ["a", "c", "b", "d"]
rrf([]) // []
Как подойти
Подсказки: 1
- Ранг считается с единицы:
enumerate(lst, 1).
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.