In this example, nextDiscrete
is used to generate 2 groups of five pseudorandom variates from the discrete distribution:

import com.imsl.stat.*;
import com.imsl.math.*;
public class RandomEx3 {
static Random IMSLRandom() {
Random r = new Random();
r.setSeed(123457);
r.setMultiplier(16807);
return r;
}
public static void main(String args[]) {
int[] deviates = new int[5];
double[] prob1 = {.05, .45, .31, .04, .15};
PrintMatrix pm = new PrintMatrix("Random deviates");
PrintMatrixFormat pmf = new PrintMatrixFormat();
Random r = IMSLRandom();
for (int i = 0; i < 5; i++) {
deviates[i] = r.nextDiscrete(1, prob1);
}
pmf.setNoColumnLabels();
pmf.setNoRowLabels();
pm.print(pmf, deviates);
for (int i = 0; i < 5; i++) {
deviates[i] = r.nextDiscrete(1, prob1);
}
pm.print(pmf, deviates);
}
}
Random deviates
3
2
2
3
5
Random deviates
1
3
4
5
3
Link to Java source.