Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static Random random = new Random();
- public static int random(int from, int to) {
- return random.nextInt(to + 1) + from;
- }
- public static int roll(int[] indexes, double[] rates) {
- double sum = 0;
- for (int index : indexes) {
- sum += rates[index];
- }
- double t = 0;
- double[] percent = new double[indexes.length];
- for (int i = 0; i < indexes.length; i++) {
- int index = indexes[i];
- if (index < 0 || index >= rates.length) continue;
- t += rates[i] / sum;
- percent[i] = t;
- }
- double r = random.nextDouble();
- for (int i = 0; i < indexes.length; i++) {
- if (r <= percent[i]) {
- return i;
- }
- }
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment