예제 #1
0
 /*
  * Authored by yiwu on Oct.8.2014
  * reference:
  * chapter 2.2 of
  * http://www.sciencedirect.com/science/article/pii/016794739390115A
  */
 private ArrayList<Integer> sample_value_use_binomial() {
   BinomialDistribution binom = null;
   int cur = 0;
   double cdf = 0;
   ArrayList<Integer> result = new ArrayList<Integer>(k);
   for (int i = 0; i < k - 1; i++) {
     if (n == cur) {
       result.add(0);
       continue;
     }
     binom = new BinomialDistribution(n - cur, p[i] / (1.0 - cdf));
     int x = binom.sample();
     cur += x;
     cdf += p[i];
     result.add(x);
   }
   result.add(n - cur);
   return result;
 }