public class RouletteSelector extends Object
Simulates selection based on a roulette wheel where all items have a weight expressing the size of their section of the wheel. The size of the wheel is the sum of all item weights. During selection a random number in (0, wheel size) is picked and then the item corresponding to this section of the wheel is selected.
For a set of items with equal weight they will all have the same probability of being selected. Items which are assigned higher weights will have a higher likelihood of being selected (and the opposite holds for lower weights).
The implementation is heavily inspired by original code written by the Apache Software Foundation (http://www.apache.org) for the Hadoop MapReduce project (http://hadoop.apache.org).
Constructor and Description 

RouletteSelector() 
Modifier and Type  Method and Description 

static <E> E 
select(List<E> items,
List<Double> weights,
Random random)
Select an item from a given list by roulette selection, where each item has a weight expressing
the size of its section of the roulette wheel.

public static <E> E select(List<E> items, List<Double> weights, Random random)
null
is returned.E
 type of itemsitems
 items from which one is to be selectedweights
 item weights (same order as items)random
 random generator (cannot be null
)null
if all weights are zero
or the item list is emptyIllegalArgumentException
 if both lists are not of the same size or if any of the
given weights is < 0NullPointerException
 if items
, weights
or random
are null
or if weights
contains any
null
elementsCopyright © 2016. All rights reserved.