Код Senior Бутстреп и перестановки обновлено

Точный перестановочный тест на Python

Условие

Напишите permutation_p(a, b): точный двусторонний перестановочный тест для разницы средних. Переберите ВСЕ способы выбрать len(a) позиций из объединённого списка a + b для группы A (itertools.combinations по индексам), для каждого посчитайте |mean(B) - mean(A)|. p-value это доля разбиений, где разница не меньше наблюдаемой (сравнение с допуском 1e-9). Верните round(p, 4). Размер входа маленький (до 12 элементов).

Примеры

permutation_p([1, 2, 3], [4, 5, 6]) // 0.1
permutation_p([1, 2, 3], [1, 2, 3]) // 1
permutation_p([10, 12, 11, 9], [14, 15, 13, 16]) // 0.0286

Как подойти

Подсказки: 3
  1. itertools.combinations(range(n), len(a))
  2. Сумма B = общая сумма минус сумма A.
  3. Допуск при сравнении float.

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

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