Ejemplo n.º 1
0
 private int randomPreviousState(
     DuoBaumLevel level, int nodeAB1, int nodeA2, int nodeB2, double nodeValue) {
   double d = random.nextDouble() * nodeValue;
   double sum = 0.0;
   for (int j = 0, n = level.size(); j < n; ++j) {
     if (nodeAB1 == level.childNodeAB1(j)
         && nodeA2 == level.childNodeA2(j)
         && nodeB2 == level.childNodeB2(j)) {
       sum += level.forwardValue(j);
       if (d <= sum) {
         return j;
       }
     }
   }
   return level.size() - 1; // error in finite bit arithmetic encountered
 }