Problem
You are given a 0-indexed array of positive integersw where w[i] describes the weight of the i^th index.
You need to implement the function pick_index(), which randomly picks an index in the range [0, w.length - 1] (inclusive) and returns it. The probability of picking an index i is w[i] / sum(w).
- For example, if
w = [1, 3], the probability of picking index0is1 / (1 + 3) = 0.25(i.e.,25%), and the probability of picking index1is3 / (1 + 3) = 0.75(i.e.,75%).
Examples
Constraints
- 1 <= w.length <= 10^4
- 1 <= w[i] <= 10^5
pickIndexwill be called at most 10^4 times.