Сэмплирование из взвешенной гистограммы
Условие задачи
Дана гистограмма весов weights, где weights[i] — неотрицательный вес элемента i. Нужно выбирать индекс случайно пропорционально весу.
На собеседовании это формулировалось как задача про sampling из histogram. В тренажере вместо настоящего RNG передаются детерминированные значения samples из диапазона [0, 1), чтобы тесты были стабильными.
Для каждого sample верните индекс, в чей отрезок cumulative distribution он попадает.
Сигнатура
def weighted_histogram_sample(weights: list[float], samples: list[float]) -> list[int]:Ограничения
len(weights) >= 1- хотя бы один вес положительный
0 <= sample < 1для каждогоsample- нулевые веса не должны выбираться