[Introduction to programming in Java 笔记] 1.3.8 Gambler's ruin simulation 赌徒破产模拟

赌徒赢得机会有多大?

[Introduction to programming in Java 笔记] 1.3.8 Gambler's ruin simulation 赌徒破产模拟_第1张图片

public class Gambler
{
    public static void main(String[] args)
    {  // Run T experiments that start with $stake and terminate on $0 and $goal
       int stake = Integer.parseInt(args[0]);
       int goal  = Integer.parseInt(args[1]);
       int T     = Integer.parseInt(args[2]);
       int bets = 0;
       int wins = 0;
       for (int t = 0; t < T; t++)
       {   // Run one experiment
           int cash = stake;
           while(cash > 0 && cash < goal)
           {   // Simulate one bet.
               bets++;
               if (Math.random() < 0.5) cash++;
               else                     cash--;
           } // Cash is either 0 (ruin) or $goal (win)
           if (cash == goal) wins++;
       }
       System.out.println(100*wins/T + "% wins");
       System.out.println("Avg # bets: " + bets/T);
    }
}

运行结果

[Introduction to programming in Java 笔记] 1.3.8 Gambler's ruin simulation 赌徒破产模拟_第2张图片
 
  

 

 

你可能感兴趣的:([Introduction to programming in Java 笔记] 1.3.8 Gambler's ruin simulation 赌徒破产模拟)