В чем разница между "количеством испытаний" и "количеством ставок" в симуляции руин игрока?
Может кто-нибудь объяснить это ясно? Я вставляю соответствующий код Java здесь. Я думал, что количество испытаний и ставок одно и то же.
public class Gambler {
public static void main(String[] args) {
int stake = Integer.parseInt(args[0]); // gambler's stating bankroll
int goal = Integer.parseInt(args[1]); // gambler's desired bankroll
int T = Integer.parseInt(args[2]); // number of trials to perform
int bets = 0; // total number of bets made
int wins = 0; // total number of games won
// repeat T times
for (int t = 0; t < T; t++) {
// do one gambler's ruin simulation
int cash = stake;
while (cash > 0 && cash < goal) {
bets++;
if (Math.random() < 0.5) cash++; // win $1
else cash--; // lose $1
}
if (cash == goal) wins++; // did gambler go achieve desired goal?
}
// print results
System.out.println(wins + " wins of " + T);
System.out.println("Percent of games won = " + 100.0 * wins / T);
System.out.println("Avg # bets = " + 1.0 * bets / T);
}
}
1 ответ
В вашем примере кода программа запускает азартную игру. Игра заканчивается, когда игрок набрал определенную сумму денег (переменная цели) или ноль. Программа отслеживает количество ставок до тех пор, пока деньги не иссякнут или цель не будет достигнута. Это переменная "ставки" или количество ставок.
Игра повторяется несколько раз, обозначаемая переменной T (количество попыток). Во время каждого испытания программа отслеживает общее количество ставок (по всем испытаниям).
И в итоге программа рассчитывает среднюю сумму ставок. то есть после игры в эту игру х раз, она в среднем принимала столько ставок за игру.