Computer Science 15-110, Spring 2010
Class Notes:  Monte Carlo Methods (Optional)


In class today we discussed Monte Carlo methods -- running random simulations to predict expected values.

Here is some sample code we wrote to demonstrate the technique.  It finds the odds of various sums when rolling two dice:

import java.util.Random;
class MonteCarloDemo {

  public static Random random = new Random();
  
  public static int rollDie() {
    return 1+random.nextInt(6);
  }
  
  public static double oddsOfSummingToN(int sum) {
    int successes = 0;
    int trials = 1000*100;
    for (int trial=0; trial<trials; trial++) {
      int die1 = rollDie();
      int die2 = rollDie();
      if (die1+die2 == sum)
        successes++;
    }
    return 1.0*successes/trials;
  }

  public static void main(String[] args) {
    for (int sum=0; sum<15; sum++)
      System.out.println(sum + ": " + oddsOfSummingToN(sum));
  }
}

carpe diem   -   carpe diem   -   carpe diem   -   carpe diem   -   carpe diem   -   carpe diem   -   carpe diem   -   carpe diem   -   carpe diem