Оценка квантиля по корзинам гистограммы, как в histogram_quantile
Напишите bucket_quantile(q, buckets).
buckets— список пар(le, count)по возрастаниюle, счётчики накопительные (запросов не дольшеle). Последняя корзина —(float("inf"), всего).q— квантиль,0 < q <= 1.- Алгоритм:
total— счётчик последней корзины; если он0, вернитеNone;rank = q × total; найдите первую корзину, у которойcount >= rank;- если это корзина
inf, вернитеleпредыдущей корзины; - иначе нижняя граница —
leпредыдущей корзины (для первой —0), и результат —нижняя + (le − нижняя) × (rank − count_пред) / (count − count_пред), гдеcount_пред— счётчик предыдущей корзины (для первой —0).
заготовка решения
def bucket_quantile(q, buckets):
# ваш код
return None