Java Random runProbability(Random rng, float[] probs, D[] choices)

Here you can find the source of runProbability(Random rng, float[] probs, D[] choices)

Description

run Probability

License

Apache License

Declaration

public static <D> D runProbability(Random rng, float[] probs, D[] choices) 

Method Source Code

//package com.java2s;
/* Copyright 2009 - 2010 The Stajistics Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.//from www  .  ja  v  a  2 s . c o m
 */

import java.util.*;

public class Main {
    public static <D> D runProbability(Random rng, float[] probs, D[] choices) {
        float tProb = 0;
        for (int i = 0; i < probs.length; i++) {
            tProb += probs[i];
        }
        float s = rng.nextFloat() * tProb;
        int c = 0;
        for (int i = 0; i < probs.length; i++) {
            s -= probs[i];
            if (s <= 0) {
                c = i;
                break;
            }
        }
        return choices[c];
    }
}

Related

  1. randomVector(int size)
  2. randRandom(Random random)
  3. randRange(float from, float to)
  4. randRangeDecimal(float min, float max)
  5. resetRandomGenerator()