Advertisement
Guest User

Untitled

a guest
Oct 30th, 2013
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.util.Random;
  2.  
  3. public class Test {
  4.    
  5.     public static Random rand = new Random();
  6.    
  7.     public static void main(String[] args) {
  8.         double[] p = new double[6];
  9.         p[0] = 0;
  10.         p[1] = 0.2;
  11.         p[2] = 0.4;
  12.         p[3] = 0.6;
  13.         p[4] = 0.8;
  14.         p[5] = 1.0;
  15.        
  16.         double[] dp = new double[6];
  17.         dp[0] = 0;
  18.         dp[1] = 0;
  19.         dp[2] = 0;
  20.         dp[3] = 0;
  21.         dp[4] = 0;
  22.         dp[5] = 0;
  23.        
  24.         long total = 0;
  25.        
  26.         for(int i = 0; i < 10000000; i++) {
  27.             total += getHitScore(genHits(p));
  28.         }
  29.        
  30.         System.out.println(total);
  31.         System.out.println(((double)total)/10000000);
  32.        
  33.         int i;
  34.         int n = 5;
  35.         double ans = 0;
  36.        
  37.         for(i = 1; i <= n; i++)
  38.             dp[i] = (dp[i-1] + p[i-1]) * p[i];  
  39.         for(i = 1; i <= n; i++)
  40.             ans+= 2 * dp[i] + p[i];
  41.        
  42.         System.out.println(ans);
  43.     }
  44.    
  45.     private static String genHits(double[] p) {
  46.         String rtn = "";       
  47.         for(int i = 1; i < p.length; i++) {        
  48.             if(rand.nextDouble() < p[i]) {
  49.                 rtn += "o"; //hit
  50.             } else {
  51.                 rtn += "x"; //miss
  52.             }
  53.         }
  54.        
  55.         return rtn;
  56.     }
  57.    
  58.     private static int getHitScore(String str) {
  59.        
  60.         int score = 0;
  61.        
  62.         int streak = 0;
  63.         for(int i = 0; i < str.length(); i++) {
  64.             if(str.charAt(i) == 'o') {
  65.                 streak++;
  66.             } else {
  67.                 score += streak + streak;
  68.                 streak = 0;
  69.             }
  70.         }
  71.        
  72.         score += streak + streak;
  73.        
  74.         return score;
  75.     }
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement