赌徒赢得机会有多大?
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 赌徒破产模拟 [Introduction to programming in Java 笔记] 1.3.8 Gambler's ruin simulation 赌徒破产模拟](https://image.miaokee.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNzI0NjkxLzIwMTYwMi83MjQ2OTEtMjAxNjAyMTkyMjE2MzIyMjItMjAyMjczNjQxNC5qcGc%3D.jpg?w=700&webp=1)