Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 1.32 KB | None | 0 0
  1. package yawning.mew;
  2.  
  3. import org.apache.commons.math.distribution.NormalDistributionImpl;
  4.  
  5. import ec.util.MersenneTwisterFast;
  6.  
  7. public class TestCDF {
  8.     private static double ATTACKS = 3.0;
  9.     private static double PCRIT = 0.6;
  10.     private static int ITERATIONS = 1000000;
  11.    
  12.     public static void main(String args[]) {
  13.         try {
  14.             MersenneTwisterFast random = new MersenneTwisterFast();
  15.            
  16.             double meanCP = ATTACKS + ATTACKS * PCRIT;
  17.             double sdCP = Math.sqrt(ATTACKS * PCRIT * (1 - PCRIT));
  18.             double p5cp = 1 - new NormalDistributionImpl(meanCP, sdCP).cumulativeProbability(4.5);
  19.            
  20.             System.out.println("p(5 cp) using normal distribution modeling: " + p5cp);
  21.            
  22.             int lower = (int)ATTACKS;
  23.             int upperIterations = (int)((ATTACKS - lower) * ITERATIONS + 0.5);
  24.             int hit5cps = 0;
  25.             for (int i = 0; i < ITERATIONS - upperIterations; i++) {
  26.                 int cp = lower;
  27.                 for (int j = 0; j < lower; j++) if (random.nextBoolean(PCRIT)) cp ++;
  28.                 if (cp >= 5) hit5cps++;
  29.             }
  30.             for (int i = 0; i < upperIterations; i++) {
  31.                 int cp = lower + 1;
  32.                 for (int j = 0; j < lower + 1; j++) if (random.nextBoolean(PCRIT)) cp ++;
  33.                 if (cp >= 5) hit5cps++;
  34.             }
  35.             System.out.println("p(5 cp) using monte carlo modeling: " + (double)hit5cps/ITERATIONS);
  36.        
  37.         }
  38.         catch (Exception e) {
  39.             e.printStackTrace();
  40.         }
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement