Код Middle Множественные проверки обновлено

Скорректированные p-value по Холму

Условие

Напишите holm_adjust(pvals): скорректированные p-value по Холму в ИСХОДНОМ порядке. Для отсортированных по возрастанию p(1) ≤ ... ≤ p(m): adj(k) = max по j ≤ k от min(1, (m - j + 1) * p(j)) (k с единицы). При равных p порядок сортировки устойчивый. Каждое значение round(..., 4).

Примеры

holm_adjust([0.001, 0.012, 0.03, 0.04, 0.2]) // [0.005, 0.048, 0.09, 0.09, 0.2]
holm_adjust([0.04]) // [0.04]
holm_adjust([0.2, 0.01, 0.03]) // [0.2, 0.03, 0.06]

Как подойти

Подсказки: 2
  1. Сортируйте индексы, а не значения.
  2. Накопленный максимум сохраняет монотонность.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.