Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package yawning.mew;
- import org.apache.commons.math.distribution.NormalDistributionImpl;
- import ec.util.MersenneTwisterFast;
- public class TestCDF {
- private static double ATTACKS = 3.0;
- private static double PCRIT = 0.6;
- private static int ITERATIONS = 1000000;
- public static void main(String args[]) {
- try {
- MersenneTwisterFast random = new MersenneTwisterFast();
- double meanCP = ATTACKS + ATTACKS * PCRIT;
- double sdCP = Math.sqrt(ATTACKS * PCRIT * (1 - PCRIT));
- double p5cp = 1 - new NormalDistributionImpl(meanCP, sdCP).cumulativeProbability(4.5);
- System.out.println("p(5 cp) using normal distribution modeling: " + p5cp);
- int lower = (int)ATTACKS;
- int upperIterations = (int)((ATTACKS - lower) * ITERATIONS + 0.5);
- int hit5cps = 0;
- for (int i = 0; i < ITERATIONS - upperIterations; i++) {
- int cp = lower;
- for (int j = 0; j < lower; j++) if (random.nextBoolean(PCRIT)) cp ++;
- if (cp >= 5) hit5cps++;
- }
- for (int i = 0; i < upperIterations; i++) {
- int cp = lower + 1;
- for (int j = 0; j < lower + 1; j++) if (random.nextBoolean(PCRIT)) cp ++;
- if (cp >= 5) hit5cps++;
- }
- System.out.println("p(5 cp) using monte carlo modeling: " + (double)hit5cps/ITERATIONS);
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement