The code is designed to select a random element, but with probabilities in accordance with a certain weight.
Example:
- We want to select from a two-element array with the following weights: {1, 9}
- Total Weight {1, 10}
- Total weight 10
- We pick a random number between 1 and 10
- We will look at the total weighted array and find the first index, where our random number is greater than the element
- This index is the index of a randomly selected item.
Intuitively, this example makes sense: 9 out of ten times a random number will fall between 1 and 9, forcing the first element to be drawn with a probability of 0.9 (exactly the same as the weights indicated).
source share